java多線程小例子:模擬兩個窗口售票

總共有100張票,模擬兩個窗口來買票

package defaultpacage;

import java.util.Random;



public class TicketSeller extends Thread {
public  static  Integer total=100;

public  static Integer getTotal() {
return total;
}

public  static void setTotal(Integer total) {
TicketSeller.total = total;
}
public TicketSeller(String name){
super(name);
}
@Override
public void run(){

while(TicketSeller.getTotal()>=0)
{
synchronized(TicketSeller.total)
{
int num=TicketSeller.getTotal();
System.out.println(this.getName()+"賣出票,還剩"+TicketSeller.getTotal());
TicketSeller.setTotal(num-1);
}
try {
Thread.sleep(new Random().nextInt(1000));
} catch (Exception e) {
// TODO: handle exception
}
}
System.out.println("賣完了");
}


public static void main(String args[])
{
TicketSeller t1=new TicketSeller("t1");
TicketSeller t2=new TicketSeller("t2");
t1.start();
t2.start();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章