特點:基於執行緒的多工處理環境中,執行緒是最小的處理單位。宣告乙個thread類的子類,覆蓋run()方法
實現:直接new出子類物件,呼叫start方法即可
class mythread extends thread實現runnable介面,重寫run方法
new出thread物件,傳入實現類物件,呼叫thread物件的start()方法;
新建狀態:
new出thead物件,呼叫start方法
就緒狀態:執行start方法之後,執行run方法之前
執行run方法
中斷狀態:執行run方法可能出現的狀態
造成中斷的原因:
死亡狀態:1.由於優先順序的關係,執行緒沒有搶到cpu被執行;(優先順序最小為1,最大優先順序為10級,
預設為5級)this.setpriority(10);設定優先順序 也就是被執行機率更高
不代表一定被先執行
2.使用sleep()方法使執行緒休眠;休眠時間結束以後重新參與cpu競爭
3.阻塞(i/o事件)比如scanner等待輸入時 就是阻塞;
4.wait-notify機制(執行緒間的通訊機制)
wait()
5.掛起機制 呼叫yield()方法 執行緒已顯示出讓cpu控制權 (強制其它執行緒退出)
清理資源,**分配空間
如果多個執行緒訪問同一資源物件,有可能會造成該資源物件資料混亂;
stringbuffer:執行緒安全,可變使用同步的方式解決;(鎖機制)
使用synchronized關鍵字(同步)
1.在資源身上使用同步關鍵字;--同步方法
public synchronized void classname()
public void run(rs)
}3.有可能造成死鎖:
stringbuilder:執行緒不安全,可變
使用wait-notify機制解決此問題
多執行緒程式設計
1 多執行緒的基本思路不是在介面執行緒執行費時的 而是專門啟動乙個執行緒 稱作工作執行緒 來完成,介面執行緒只負責介面的 顯示 和操作,而工作執行緒只負責耗時的操作過程。2 對於普通的win32應用程式來說,執行緒可以分為兩種 介面 ui user inte ce 執行緒和工作執行緒。介面執行緒一般...
多執行緒程式設計
如何編寫執行緒安全的dll 在我的工作中經常會編寫dll,這些dll有個共同的特點就是都有乙個初始化函式,乙個資源釋放函式,其他幾個函式都是核心功能函式。而且這些dll有時會被多個程序同時呼叫,這就牽扯到多程序的多執行緒呼叫dll的問題。有點繞口,以下我根據我實踐中遇到的問題,分四種情況分享一下我解...
多執行緒程式設計
1 執行緒的狀態 建立狀態 準備好了乙個多執行緒的物件 就緒狀態 呼叫了start 方法,等待cpu進行排程 執行狀態 執行run 方法 阻塞狀態 暫時停止執行,可能將資源交給其他執行緒使用 終止狀態 死亡狀態 執行緒銷毀 2 執行緒的常用方法 thread類 取得執行緒名稱 getname thr...