一、建立執行緒
重點1、繼承
thread
2、實現
runnable
知識點:其中用到了設計模式中的**模式,
**角色:
持有真實角色的引用。引申到aop,就是用的動態**
3、實現
callable (了解)
二、執行緒的狀態
1、新生 -->start -->就緒
-->
執行-->
阻塞-->
終止2、終止執行緒 (重點
3、阻塞
: join 用法:引用.join();//把引用執行緒合併到當前執行緒,並且先執行引用執行緒
yield用法:thread.yield();//把當前執行緒騰出來,讓其他執行緒先執行,
不釋放鎖
sleep用法:thread.sleep();//等待,不釋放鎖
wait() :this.wait();等待,釋放鎖
setname():設定名稱
getname():獲取名稱
isalive():判斷狀態
setpriority();設定優先順序
this.notify(); //喚醒在當前物件等待池中等待的第乙個執行緒。不釋放鎖的才能喚起
notifyall
叫醒所有在當前物件等待池中等待的所有執行緒。不釋放鎖的才能喚起
三、執行緒的資訊
1、thread.currentthread
2、獲取名稱 設定名稱
設定優先順序
判斷狀態
四、同步:對同乙份資源
synchronized(引用型別變數
|this|
類.class)
修飾符 synchronized方法的簽名
過多的同步可能造成死鎖
五、生產者消費者模式
六、任務排程
timer timer =new timer();
schedule(timertask task, date firsttime, long period)
第乙個引數,任務
第二個引數,第一次執行的開始時間
第三個引數,下次執行和上次執行的時間間隔
執行緒 對執行緒的控制
使用thread建立執行緒後,我們需要對執行緒進行 控制 1.使用start 方法,使執行緒處於running狀態,執行緒開始執行 2.使用join 方法,使執行緒進入waitsleepjoin狀態。3.使用sleep 方法,也會使執行緒進入waitsleepjoin狀態。經歷了sleep 方法定義...
電纜對線總結
工程中,經常需要鋪設電纜,比如8芯電纜,有的時候,8芯顏色都是一樣的,那麼怎麼知道電纜兩頭,哪兩頭是同一根呢?方法1 有的電纜各芯上都是有序號標記的,直接看序號 方法2 使用萬用表的歐姆檔測量通斷。1 一般電纜都是有遮蔽線的,我們使用遮蔽線作為公共線,電纜一頭a將某一芯與遮蔽線短接 電纜另一頭b,使...
對執行緒安全的理解
方法中的變數不存在非執行緒安全問題,永遠都是執行緒安全的,這是因為方法內部的變數是私有的特性造成的。synchronized鎖加在方法上,鎖的是物件。效果同synchronized this synchronized加在靜態方法上,鎖的是類。效果同synchronized class.class 多...