多執行緒程式設計

2022-03-29 17:11:38 字數 1714 閱讀 8469

多工處理有兩種型別:

1

2

建立和啟動執行緒:

1、實現方式1 : 繼承thread類,並重寫run方法,在run方法中寫入要執行的**

需呼叫start方法啟動執行緒,由start方法呼叫run方法,如果直接呼叫run方法則沒有

開啟執行緒

2、實現方式2 : 實現runnable介面,重寫run方法,在run方法中寫入要執行的**

執行緒狀態:

一、新建 ----new thread

二、就緒 ----呼叫start(),在start()呼叫run()之前

三、執行 ----run()執行期間

四、中斷 ----在run()執行期間,該執行緒沒有被cpu執行的時間

中斷原因:

1、沒有搶到cpu

2、阻塞

3、休眠 thread.sleep(休眠的毫秒數);

4、等待—喚醒        wait()等待,notify()喚醒,notifyall()喚醒所有

5、掛起 yield();

注意:1、中斷結束之後執行緒會去搶奪cpu,如果沒搶到則繼續中斷

2、預設情況下,所有執行緒優先順序一樣

thread類的setpriority()可以設定執行緒優先順序,預設值都為5,最高10級,最低1級,優先順序高則代表被cpu選中的機率高,不一定都是先執行的

五、死亡 ----run()執行結束之後,**資源

執行緒安全性:

執行緒同步:關鍵字synchronized

1、同步方法:一次只能被乙個執行緒使用,該執行緒沒有執行完,其他執行緒只能等待。

在資源類的方法中加關鍵字synchronized

2、同步塊:

死鎖:

當兩個執行緒迴圈依賴於一對同步物件時將發生死鎖。

執行緒間通訊:

wait();

notify();

多執行緒程式設計

1 多執行緒的基本思路不是在介面執行緒執行費時的 而是專門啟動乙個執行緒 稱作工作執行緒 來完成,介面執行緒只負責介面的 顯示 和操作,而工作執行緒只負責耗時的操作過程。2 對於普通的win32應用程式來說,執行緒可以分為兩種 介面 ui user inte ce 執行緒和工作執行緒。介面執行緒一般...

多執行緒程式設計

如何編寫執行緒安全的dll 在我的工作中經常會編寫dll,這些dll有個共同的特點就是都有乙個初始化函式,乙個資源釋放函式,其他幾個函式都是核心功能函式。而且這些dll有時會被多個程序同時呼叫,這就牽扯到多程序的多執行緒呼叫dll的問題。有點繞口,以下我根據我實踐中遇到的問題,分四種情況分享一下我解...

多執行緒程式設計

1 執行緒的狀態 建立狀態 準備好了乙個多執行緒的物件 就緒狀態 呼叫了start 方法,等待cpu進行排程 執行狀態 執行run 方法 阻塞狀態 暫時停止執行,可能將資源交給其他執行緒使用 終止狀態 死亡狀態 執行緒銷毀 2 執行緒的常用方法 thread類 取得執行緒名稱 getname thr...