各視窗單獨賣票 【 Java 多執行緒 】
阿新 • • 發佈:2018-12-24
多視窗賣票,需求如下:
假設一個影院有三個售票口,分別用於向兒童、成人和老人售票。 影院為每個視窗放有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); } } }