黑马程序员技术交流社区
标题:
java实现runnabale的线程的static问题
[打印本页]
作者:
saiqqww234
时间:
2016-5-4 23:33
标题:
java实现runnabale的线程的static问题
ava中为什么通过实现runnabale的线程中,a不用加static,这不是两个不同的线程吗,加上static才能共享吧,为什么不用加?
public class ThreadDemo
{
public static void main(String[] args)
{
MyThread mt1 = new MyThread();
MyThread mt2 = new MyThread();
Thread t1 = new Thread(mt1);
Thread t2 = new Thread(mt2);
t1.start();
t2.start();
}
}
class MyThread implements Runnable
{
private int ticket = 10;
String a="1";//String a=new ("1");这个地方如果用new必须是static,为什么a="1"就不需要static?
public void run()
{
synchronized(a){
for(int i = 0; i < 20; i ++)
{
if(this.ticket > 0)
{
System.out.println("卖票:" + this.ticket--);
}
}
}
}
作者:
ls20090726
时间:
2016-5-5 13:55
不用new是直接从方法区内存中的常量池中获取对象,属性相同的必定是同一对象;
用new会在堆内存中创建对象,属性相同的也不是同一对象;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2