多线程!卖票问题! 本帖最后由 relicemxd 于 2014-11-26 12:38:38 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //楼主的第二种情况是如下使用匿名对象吧???Thread t1 = new Thread(new Ticket()); Thread t2 = new Thread(new Ticket());如果是这样的话,实际还是new出了两个对象,每个匿名对象里都有实例参数ticket,两个线程各自对一个匿名对象在操作,所以,并没有共享(两个对象) 楼主说的匿名对象是指? Thread t1 = new Thread(new Runnable() { private int tick = 20; @Override public void run() { while (true) { if (tick > 0) System.out.println(Thread.currentThread().getName() + " Ticket: " + tick--); else break; } } });上面的方式,相当于每个线程都有20张票了,线程间没有共享了 是的就是这种情况:Thread t1 = new Thread(new Ticket()); Thread t2 = new Thread(new Ticket()); 是的就是这种情况:Thread t1 = new Thread(new Ticket()); Thread t2 = new Thread(new Ticket());楼主,这样不行,这相当于你定义了两个对象,而这两个对象会各自有20张票。new Thread(t)这个对,是因为t1,t2都是根据一个对象t创建的线程。所以票就共享了。 日历类取返回值 论坛里的高手 帮我看下 java编译器研究大探讨 一个仿迅雷软件,从网上下载软件遇到的问题 java 的一个问题,高分在线等 编译时出现"Exception in thread "main" java.lang.NoclassDefFoundError:CopyFile/class"? 一个线程组群的问题 求教一下异步IO的问题,课设要交了,急死了! 请教高手---怎样在用JAVA语言连接加密的ACCESS数据库 想做一个小程序,自动在网页上填写东西 Java生成 6-8位 随机数 怎么让Applet用户免配置java控制台的安全性?
//楼主的第二种情况是如下使用匿名对象吧???
Thread t1 = new Thread(new Ticket());
Thread t2 = new Thread(new Ticket());如果是这样的话,实际还是new出了两个对象,每个匿名对象里都有实例参数ticket,两个线程各自对一个匿名对象在操作,所以,并没有共享(两个对象)
private int tick = 20;
@Override
public void run() {
while (true) {
if (tick > 0)
System.out.println(Thread.currentThread().getName() + " Ticket: " + tick--);
else
break;
}
}
});上面的方式,相当于每个线程都有20张票了,线程间没有共享了
是的就是这种情况:
Thread t1 = new Thread(new Ticket());
Thread t2 = new Thread(new Ticket());
是的就是这种情况:
Thread t1 = new Thread(new Ticket());
Thread t2 = new Thread(new Ticket());楼主,这样不行,这相当于你定义了两个对象,而这两个对象会各自有20张票。new Thread(t)这个对,是因为t1,t2都是根据一个对象t创建的线程。所以票就共享了。