ExecutorService executor = Executors.newFixedThreadPool(2);
-上述語句創建的線程池具有2
executor.execute(new Worker());
固定大小 -上述語句採用類工人已實現Runnable
的一個實例接口。
-現在這裏Executors
是一箇中間對象,執行任務。它管理線程對象。
-通過執行上面的語句run()
方法將被執行,而一旦run()方法完成後,線程亙古進入死亡狀態,但移動放回池中,等待有另一個工作分配所以它可以再次進入Runnable狀態,然後運行,所有這些都由Executors處理。
executor.shutdown();
-上面的語句將關閉執行人本身,適當地處理其管理的所有線程的關機.. shutdown()
該中心對象,這反過來又可以終止每個註冊執行人對。
////////// Edited Part//////////////////////
- 所有可運行的首先有一個run()方法,該方法不能返回任何東西,和run()方法不能拋出checked異常,因此可贖回在Java 5中,這是參數化類型的介紹,並有一個名爲call()的方法,它能夠返回並拋出Checked異常。
現在看到這個例子:
Thread t = new Thread(new Worker());
t.run();
t.start();
-t.run()
僅僅是run()
方法的簡單的通話,這不會跨越一個thread of execution
。
-t.start()
而準備的東西爲thread of execution
的initialization
重要,然後電話的run()
方法Runnable
,然後分配的Task
到新成立的thread of execution
和快速返回....
使用Swing
和時,Java中的線程成爲必需。 主要是GUI組件。
概念上它很容易。您啓動一個固定數量的運行方法在隊列中等待的隊列。您將工作請求發送到隊列,運行方法將請求解除隊列並執行工作請求。然後他們又回到隊列中等待。訣竅是找到正確類型的隊列--JDK中有六個,但只有一個特殊的(最後我看了)適合這個,它隱藏在一個角落裏。 –