什么叫創(chuàng)建線程的兩種方式……把線程(對應Thread類實例)和任務(Runnable接口實例)區(qū)分開來好吧!啟動一個線程去執(zhí)行任務的過程包括
創(chuàng)建任務-》創(chuàng)建線程-》將任務指定為線程的目標(target)-》啟動線程(調(diào)用start())來執(zhí)行任務,
這其中涉及了線程(任務執(zhí)行者)和任務兩類實體,照這里說的創(chuàng)建線程的方式就只有實例化一個Thread類對象一種!
只不過Thread類本身就實現(xiàn)了Runnable接口因此其自身也可以充當一個任務。用繼承的方式跑的任務還不是一樣對應Runnable實例
創(chuàng)建任務-》創(chuàng)建線程-》將任務指定為線程的目標(target)-》啟動線程(調(diào)用start())來執(zhí)行任務,
這其中涉及了線程(任務執(zhí)行者)和任務兩類實體,照這里說的創(chuàng)建線程的方式就只有實例化一個Thread類對象一種!
只不過Thread類本身就實現(xiàn)了Runnable接口因此其自身也可以充當一個任務。用繼承的方式跑的任務還不是一樣對應Runnable實例
2017-04-25
MyThread mt = new MyThread("火車站窗口");
Thread mt1 = new Thread(mt,"窗口一");
Thread mt2 = new Thread(mt,"窗口二");
Thread mt3 = new Thread(mt,"窗口三");
mt1.start();
mt2.start();
mt3.start();
這樣就不會多賣了
Thread mt1 = new Thread(mt,"窗口一");
Thread mt2 = new Thread(mt,"窗口二");
Thread mt3 = new Thread(mt,"窗口三");
mt1.start();
mt2.start();
mt3.start();
這樣就不會多賣了
2017-03-21