/**
* Created by Gavin on 2018/8/26.
*/
class SellTicket implements Runnable {
private Integer ticketCount = 9;
private Object mutex = new Object();
@Override
public void run() {
while (true) {
if(ticketCount > 0) {
sell();
}
}
}
private void sell() {
synchronized (mutex) {
if(ticketCount > 0) {
ticketCount--;
System.out.println("售出票" + ticketCount);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
System.out.println("票已经售罄");
}
}
}
public static void main(String[] args) {
SellTicket s = new SellTicket();
new Thread(s).start();
new Thread(s).start();
new Thread(s).start();
}
}
很简单的实现,主要就是资源的安全共享,采用加锁互斥就行了,可以考虑换用wait和notify实现