黑马程序员技术交流社区
标题:
关于多线程
[打印本页]
作者:
xiaochen33520
时间:
2014-1-25 22:16
标题:
关于多线程
本帖最后由 xiaochen33520 于 2014-1-26 20:39 编辑
class ThreadDemo2 implements Runnable
{
static String name;
public ThreadDemo2(String name)
{
this.name = name;
}
public void run()
{
for(int x = 0;x<10;x++)
{
System.out.println("...."+x+"...."+Thread.currentThread().getName());
}
}
public static void main(String[] args)
{
ThreadDemo2 d = new ThreadDemo2("张三");
ThreadDemo2 d2 = new ThreadDemo2("李四");
System.out.println(d.name);
System.out.println(d2.name);
Thread t1 = new Thread(d,d.name);
Thread t2 = new Thread(d2,d2.name);
t1.start();
t2.start();
}
}
为什么两个线程的名字都是李四?
作者:
筱厸厸
时间:
2014-1-25 23:03
兄弟,你的name属性石static的,是静态属性,所有对象共享同一个变量,你去掉后就好了
作者:
↑↓ME→←
时间:
2014-1-25 23:21
你的name是static,所有对象共享一份变量,后面的覆盖前面的,输出当然是李四啦!
作者:
xiaochen33520
时间:
2014-1-26 20:37
↑↓ME→← 发表于 2014-1-25 23:21
你的name是static,所有对象共享一份变量,后面的覆盖前面的,输出当然是李四啦! ...
没注意。。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2