賣票的問題,4個線程一起買100張票
public?class?Ticket?implements?Runnable?{
private?int?num?=?100;
Object?obj?=?new?Object();
@Override
public?void?run()?{
while?(true){
try{
Thread.sleep(10);
}catch(InterruptedException?e){}
if?(num?>?0){
System.out.println(Thread.currentThread().getName()+"...sale..."+num--);
}
}
}
}
-----
public?class?TicketDemo?{
public?static?void?main(String[]?args)?{
Ticket?t?=?new?Ticket();
Thread?t1?=?new?Thread(t);
Thread?t2?=?new?Thread(t);
Thread?t3?=?new?Thread(t);
Thread?t4?=?new?Thread(t);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
運行結果:為什么同一張票會被重復賣出去?,我想知道造成這一現象的原因和過程講解,求大神指導。 ? ? ? 我知道加個同步鎖就沒事啦~ ? ?可是我就想知道造成這一現象的過程和原因
關于線程的一個問題
我要變大神大神大大神
2016-12-30 13:56:00