1. 程式人生 > >各視窗單獨賣票 【 Java 多執行緒 】

各視窗單獨賣票 【 Java 多執行緒 】

多視窗賣票,需求如下:

假設一個影院有三個售票口,分別用於向兒童、成人和老人售票。 影院為每個視窗放有10張電影票,分別是兒童票、成人票和老人票。 三個視窗需要同時賣票, 而現在只有一個售票員,這個售票員就相當於一個CPU,三個視窗就相當於三個執行緒。

1 通過擴充套件Thread類來建立多執行緒


public class Main {

	public static void main(String[] args) {
		
		Test w1 = new Test("window 1");
		Test w2 = new Test("window 2");
		Test w3 = new Test("window 3");
		
		w1.start();  // start 呼叫
		w2.start();
		w3.start();
	}
}

class Test extends Thread{  // 繼承 Thread
	private int n = 10;
	Test(String name){
		super(name);
	}
	public void run(){  //重寫
		while(n > 0){
			System.out.println(n -- + " is saled by " + currentThread().getName());
		}
	}
}

2、通過實現Runnable介面來建立 多執行緒 (推薦)


public class Main {

	public static void main(String[] args) {

		Test w1 = new Test("window 1"); 
		Test w2 = new Test("window 2");
		Test w3 = new Test("window 3");

		Thread m1 = new Thread(w1);
		Thread m2 = new Thread(w2);
		Thread m3 = new Thread(w3);

		m1.start();
		m2.start();
		m3.start();
	}
}

class Test implements Runnable {
	private int n = 10;
	private String name;

	Test(String name) {
		this.name = name;
	}

	public void run() {
		while (n > 0) {
			System.out.println(n-- + " is saled by " + name);
		}
	}
}