多執行緒-繼承Thread類的方式賣電影票案例

ZHOU_VIP發表於2017-06-03

package cn.itcast_06;

public class SellTicket extends Thread {

	// 定義100張票
	// private int tickets = 100;
	// 為了讓多個執行緒物件共享這100張票,我們其實應該用靜態修飾
	private static int tickets = 100;

	@Override
	public void run() {
		// 定義100張票
		// 每個執行緒進來都會走這裡,這樣的話,每個執行緒物件相當於賣的是自己的那100張票,這不合理,所以應該定義到外面
		// int tickets = 100;

		// 是為了模擬一直有票
		while (true) {
			if (tickets > 0) {
				System.out.println(getName() + "正在出售第" + (tickets--) + "張票");
			}
		}
	}
}


package cn.itcast_06;

/*
 * 某電影院目前正在上映賀歲大片(紅高粱,少林寺),共有100張票,而它有3個售票視窗售票,請設計一個程式模擬該電影院售票。
 * 繼承Thread類來實現。
 */
public class SellTicketDemo {
	public static void main(String[] args) {
		// 建立三個執行緒物件
		SellTicket st1 = new SellTicket();
		SellTicket st2 = new SellTicket();
		SellTicket st3 = new SellTicket();

		// 給執行緒物件取名字
		st1.setName("視窗1");
		st2.setName("視窗2");
		st3.setName("視窗3");

		// 啟動執行緒
		st1.start();
		st2.start();
		st3.start();
	}
}



相關文章