线程的协作:
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();
}
}
}
}
}