1、代码
public class Test {
public static void main(String[] args) {
Tickets tickets = new Tickets(10);
new Thread(tickets, "售票员A").start();
new Thread(tickets, "售票员B").start();
new Thread(tickets, "售票员C").start();
}
}
class Tickets implements Runnable {
private int num;
Tickets(int num) {
this.num = num;
}
public void run() {
while(num > 0) {
sale();
}
}
private synchronized void sale() {
if(num > 0){
System.out.println(Thread.currentThread().getName() + "卖出一张火车票,还剩余"+ (--num) + "张票。");
try{
Thread.sleep(100);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
2、运行结果
售票员A卖出一张火车票,还剩余9张票。
售票员A卖出一张火车票,还剩余8张票。
售票员B卖出一张火车票,还剩余7张票。
售票员C卖出一张火车票,还剩余6张票。
售票员C卖出一张火车票,还剩余5张票。
售票员B卖出一张火车票,还剩余4张票。
售票员B卖出一张火车票,还剩余3张票。
售票员A卖出一张火车票,还剩余2张票。
售票员A卖出一张火车票,还剩余1张票。
售票员A卖出一张火车票,还剩余0张票。