Java線程學習之一---售票

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();
	}
}


在線程學習中,售票線程是一個很經典的小例子,雖然簡單,但是也是可以讓我們學會不少東西。

發佈了25 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章