Thinking in Java(Fourth Edition)學習筆記--併發(concurrency)-21.2基本線程機制

1.任務只需實現Runner接口並編寫run()方法,就可以執行任務.每個任務需要着到線程(Thread)上. 

  注意:線程執行基本是無序的,若要控制順序,需要使用同步控制

2.但是Exector可以爲我們管理Thread對象,Exector在客戶端和任務執行之間提供了一個間接層.

  Executors.newCachedThreadPool(),Executors.newFixedThreadPool(5)

3.可以從任務中返回值P658

4.線程休眠:TimeUnit.MILLISECONDS.sleep(1000)

5.線程優先級P660.

6.線程讓步yield,不可依賴,常被誤用.

7.後臺(daemon)線程P662

(1) Thread daemon = new Thread(new SimpleDaemons());
             daemon.setDaemon(true);  // Must call before start()
             daemon.start();

(2)可以通過isDaemon()判斷是否爲後臺線程

          *通過後臺純種創建的線程也是後臺線程P663

 (3) 當最後一個後臺線程終止時,所有後臺線程會"突然"全部終止,所有未執行完的部分都不會執行,包括finally模塊.

8.異常捕獲

(1)無法直接捕獲從線程中拋出的異常

(2)若要捕獲線程中的異常,必須在創建線程時設置異常處理器(ExceptionHandler)P673-674

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章