多线程同步:多窗口卖票

package threadtest.test;


public class ThreadForDemo implements Runnable{
	private int count = 20;
	private Boolean flag = true;
	@Override
	public void run(){
		while(flag){
			synchronized(""){
				if(count>0){
					try{
						Thread.sleep(500);
					}catch(InterruptedException e){
						e.printStackTrace();
					}
					System.out.println("窗口号"+Thread.currentThread().getName()+"剩下余票数:"+count);
				    count--;
				}else if(count==0){
					if(flag){
						System.out.println("the tickets hava been sold out!");
						flag=false;
					}
				}
				
			}
			
		}
	}


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ThreadForDemo threadfordemo = new ThreadForDemo();
		Thread th1 = new Thread(threadfordemo);
		Thread th2 = new Thread(threadfordemo);
		Thread th3 = new Thread(threadfordemo);
		Thread th4 = new Thread(threadfordemo);
		
		th1.start();
		th2.start();
		th3.start();
		th4.start();
	}
}

你可能感兴趣的:(java编程知识)