package com.app.thread;
/**
* 賣票線程
*
* @author author
*
*/
public class TicketThread implements Runnable {
// 票的總數
public int ticketSum;
public TicketThread(int ticketSum) {
this.ticketSum = ticketSum;
}
public void run() {
while (true) { // 無限賣票
synchronized (this) { // 使用同步代碼塊
if (ticketSum > 0) {
System.out.println(Thread.currentThread().getName()
+ "==ticketSum:" + ticketSum--);
} else {
break;
}
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
TicketThread a = new TicketThread(100);
new Thread(a).start();
new Thread(a).start();
new Thread(a).start();
}
}
在線程學習中,售票線程是一個很經典的小例子,雖然簡單,但是也是可以讓我們學會不少東西。