黑马程序员技术交流社区
标题:
关于Thread.currentThread()一个非常困惑的问题
[打印本页]
作者:
che201311
时间:
2013-11-23 12:06
标题:
关于Thread.currentThread()一个非常困惑的问题
ackage com;
public class ThreadTest {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
new Thread(new Tn("1")).run();
new Thread(new Tn("2")).run();
//我希望输出的结果是1 2 但是 实际上输出来的全部是main main
}
}
class Tn extends Thread {
public Tn(String name) {
super(name);
}
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
currentThread 说是返回当前执行的线程,那么难道这个当前执行线程只能是MAIN 吗? 能不能举个例子让currentThread 返回不同的当前执行线程 最好给出代码 谢谢!
作者:
FFF
时间:
2013-11-23 14:34
本帖最后由 FFF 于 2013-11-23 16:32 编辑
以下代码可以实现你想要输出1,2的目标。
public static void main(String[] args) throws InterruptedException {
new Thread(new Tn("1")).start() ;
new Thread(new Tn("2")).start() ;
//我希望输出的结果是1 2 但是 实际上输出来的全部是main main
}
}
class Tn extends Thread {
String name;
public Tn(String name) {
this.name=name;
}
public void run() {
System.out.println(name);
}
复制代码
同学,Thread.currentThread().getName()是什么意思你懂了吗?如果不知道、欢迎你重新开贴问{:soso_e120:}
作者:
低调的奢华
时间:
2013-11-23 14:36
public class Test4 {
/**
* currentThread 说是返回当前执行的线程,那么难道这个当前执行线程只能是MAIN 吗? 能不能举个例子让currentThread
* 返回不同的当前执行线程 最好给出代码 谢谢!
*
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
// 开启一个线程调用start()方法,你直接调用run()方法,这只是线程体,一个方法而已
// 程序中依然只有主线程这一个线程,所以只能是main。
// 调用start方法来启动一个线程,这时此线程是处于就绪状态, 并没有运行
// 然后通过此Thread类调用方法run()来完成其运行操作的。
// 至于你想打印显示1,2,你只是将1,2传入构造函数而已,并没有保存,怎么打印?
new Thread(new Tn("1")).start();
new Thread(new Tn("2")).start();
}
}
class Tn extends Thread {
String name;
public Tn(String name) {
this.name = name; // 将传入的参数赋给成员变量
// super(name);
}
public void run() {
// 打印成员变量
System.out.println(name);
// 返回当前正在执行的线程的名称
System.out.println(Thread.currentThread().getName());
}
}
复制代码
作者:
低调的奢华
时间:
2013-11-23 14:38
{:soso__512989359774006963_3:}
我去,我慢了!
作者:
低调的奢华
时间:
2013-11-23 14:46
FFF 发表于 2013-11-23 14:34
以下代码可以实现你想要输出1,2的目标。同学,Thread.currentThread().getName()是什么意思你懂了吗?如果 ...
我以为我慢了,结果是你水了!哈哈!
new Thread(new Tn("1")).run();你没发现他这句有错吗?
这压根只有主线程。
start() run() 傻傻分不清楚!
作者:
che201311
时间:
2013-11-23 16:00
明白明白。。。。。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2