JAVA高级基础(73)---线程协作_销售火车票传统方式

版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/86552013

线程的协作:
        1 一列火车有100个座位,现在由5个售票窗口来进行销售。

package org.lanqiao.thread.demo;
//一列火车有100个座位,现在由5个售票窗口来进行销售。
//使用传统的线程来实现
public class SellerTicket {
	
	public static void main(String[] args) {
		Thread t1 = new Thread(new Ticket(),"1号售票窗口");
		Thread t2= new Thread(new Ticket());
		t2.setName("2号售票窗口");
		Thread t3 = new Thread(new Ticket(),"3号售票窗口");
		Thread t4 = new Thread(new Ticket(),"4号售票窗口");
		Thread t5 = new Thread(new Ticket(),"5号售票窗口");
		t1.start();
		t2.start();
		t3.start();
		t4.start();
		t5.start();
	}
}

class  Ticket implements Runnable {
	private static int  ticketNum = 100;//
	/*private Object obj;
	public Ticket(Object obj ) {
		this.obj = obj;
	}*/
	@Override
	public void run() {
			while(true){
			synchronized (Ticket.class) {
				if(ticketNum < 0) {
					System.out.println("票已售完");
					break;
				}
				System.out.println(Thread.currentThread().getName()+"卖出第" + (ticketNum--)+ "号票");
				try {
					Thread.sleep(10);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		
		
		
	}	
}


猜你喜欢

转载自blog.csdn.net/yj201711/article/details/86552013