Java併發程式設計從入門到精通 之 第二章 認識Java裡面的Thread
阿新 • • 發佈:2019-02-12
建立執行緒三種方法:-1 直接 extends Thread 覆蓋 run() 方法-2 實現Runnable介面,實現run()方法-3 實現Callable介面,實現call()方法//假設ThreadC 繼承了Callable介面FutureTask<String> f = new FutureTask<String>(threadC);new Thread(f).start();執行緒的中斷機制:-1 Thread.stop(); 強制停止執行緒,不安全,不再建議使用。-2 Thread.interrupt(); 一種中斷機制,不會直接中斷,而是講執行緒中的中斷標識設定為true。然後讓當前執行緒自己處理中斷。-- interrupted();測試執行緒是否已中斷,並清除中斷狀態。-- isInterrupted();測試執行緒是否已中斷-- interrupted(); 設定執行緒中斷狀態為true如果執行緒處於可中斷狀態,然後呼叫了sleep或wait()會丟擲InterruptedException,這時不執行Thread.interrupted()則會導致處理IO資源時,資源關閉。執行緒的生命週期:
守護執行緒:setDeamon(boolean on); 設定執行緒組:執行緒組可控制組內執行緒同時操作,如設定優先順序。當前執行緒副本:ThreadLocal空間換時間,為每個使用該變數的執行緒提供獨立的變數副本,從而互不影響。-1 方法:threadLocal.set(xx) , xxx.get(),xx.remove(), initialValue()初始化值private static ThreadLocal<Integer> seqNum = new ThreadLocal<Integer >() { public Integer initialValue () { return 0; }};執行緒用完該變數後remove調。。-2 實現原理:內部維護一個執行緒相關的 ThreadLocalMap 執行緒異常的處理:執行緒的異常應由執行緒自行處理,並在run方法內部try catch處理掉。對於unchecked exception,則應實現UncaughtExceptionHandler介面處理。
守護執行緒:setDeamon(boolean on); 設定執行緒組:執行緒組可控制組內執行緒同時操作,如設定優先順序。當前執行緒副本:ThreadLocal空間換時間,為每個使用該變數的執行緒提供獨立的變數副本,從而互不影響。-1 方法:threadLocal.set(xx) , xxx.get(),xx.remove(), initialValue()初始化值private static ThreadLocal<Integer> seqNum = new ThreadLocal<Integer >() { public Integer initialValue