關於線程和任務的區別與聯系 – JAVA編程語言程序開發技術文章

關於java多線程中線程和任務的關系:
1、線程是獨立與任務的,線程附著到任務上,線程驅動任務執行,而真正的執行邏輯應該被叫做“任務”,線程和任務是兩個不同的東西。run()方法中的邏輯代碼就是執行任務,所以每次new一個線程對象的時候,是使用線程對象的start()方法去驅動任務,而不是直接調用線程對象的run()方法,從這裡就可以看出線程和任務是完全兩個不同的概念。
2、在java中一個線程類最好是實現runnable接口,這樣就很明顯的將線程和任務區分開瞭,傳參時就直接向線程類的構造函數中傳遞任務參數。這樣不但可以是任務去繼承其它的類,還是代碼的邏輯更加的清晰。
 
jvm中有一個線程調度器負責對jvm存在的線程進行調度和資源的分配,如果使用執行器Executor,則Executor就可以行使線程調度器的職能,對線程的創建和調度進行管理,Executor中會維護一個線程池,這樣就免去瞭每次創建線程的開銷。提高瞭線程的復用性。
 
Excecutor的使用方法:
ExecutorService service = Executors.newCachedThreadPool();
service.execute(thread);
這隻是其中的一種使用方法,可根據自己的情況選擇不同的Executor。

作者“690360459-qq-com”
 

發佈留言