黑马程序员技术交流社区
标题:
多线程问题
[打印本页]
作者:
java—family
时间:
2014-7-21 10:43
标题:
多线程问题
package DuoXianCheng;
public class ThreadDemo1 {
//创建线程有两种方式
/*第一种是 ,继承Thread类,复写run方法
* 步骤:定义一个类继承Thread类
* 复写run方法
* 创建Thread 子类对象创建线程。
* 调用start方法
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo d1 = new Demo("小明");
Demo d2 = new Demo("小强");
d1.start();
d2.start();
}
}
class Demo extends Thread{
private String name;
Demo(String name){
super(name);
// this name = name;
}
public void run(){
for(int x=0;x<10;x++){
System.out.println(name+Thread.currentThread().getName());
}
}
}
运行后
null小明null小强null小明null小强null小明null小强null小明null小强null小明null小强null小明null小明null小明null小明null小明null小强null小强null小强null小强null小强为什么怎么会这样 Thread.currentThread().getName()去哪里了
作者:
阿磊
时间:
2014-7-21 11:05
在Demo类中你定义了一个private的name,并且构造函数是引用了thread中的name,你获取的线程名称实际上就是小强和小明,你给两个线程取了两个名字 就是小强和小明。null打印的是name输出的值,因为你并没有定义name的获取方法,而构造函数有出现了super(name);说一打印出来是null+线程名:小强或者小明。
作者:
阿磊
时间:
2014-7-21 11:06
在Demo类中你定义了一个private的name,并且构造函数是引用了thread中的name,你获取的线程名称实际上就是小强和小明,你给两个线程取了两个名字 就是小强和小明。null打印的是name输出的值,因为你并没有定义name的获取方法,而构造函数有出现了super(name);说一打印出来是null+线程名:小强或者小明。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2