标题: 卖票的多线程怎么老不对呢 [打印本页] 作者: 小洋人最happy 时间: 2012-11-23 21:02 标题: 卖票的多线程怎么老不对呢 class Ticket implements Runnable
{
private int tick = 100;
public void run()
{
while(true)
{
if(tick>0)
{
System.out.printlm(Thread.currentThread().getName()+"....sales"+tick--);
}
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
Ticket t = new Ticket();
Thread t1 = new Ticket(t);
Thread t2 = new Ticket(t);
Thread t3 = new Ticket(t);
Thread t4 = new Ticket(t);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
作者: 杨卫腾 时间: 2012-11-23 21:12
你没有写正确?
依你的程序应该是要加静态的。这样才能保证除主线外的四个线程
同时卖出总计100张票。作者: 潘天功 时间: 2012-11-23 21:17
class Ticket implements Runnable
{
private int tick = 100;
public void run()
{
while(true)
{
if(tick>0)
{
System.out.printlm(Thread.currentThread().getName()+"....sales"+tick--);
}
}
}
}
这段代码有问题,正确写法如下:
public class Ticket implements Runnable{
private int tick = 100;
@Override
public void run() {
while (true) {
if (tick > 0) {
System.out.println(Thread.currentThread().getName() + "卖出第" + (tick--) + "票");
}
}
}