多執行緒程式設計

2021-07-11 14:43:51 字數 977 閱讀 8051

-宣告乙個thread類的子類,並覆蓋run()方法。

class mythread extends thread

-宣告乙個實現runnable介面的類,並實現run()方法

class mathread implements runnable{

public void run(){\實現該方法}}

1.  新建狀態;{通過new出thread物件}

2. 就緒狀態;{執行start方法之後,執行run方法之前}

3. 執行狀態;{執行run方法}

4. 中斷狀態;{中斷原因:

1.由於優先順序關係,執行緒沒有搶到cpu,優先順序最小為1級,最大為10級,預設為5級,this.setpriority(thread.min-prior);

2.使用sleep()使執行緒休眠,sleep方法到點是讓執行緒重新參與競爭,不是到點就能直接進去;

3.阻塞(i/o事件)

4.wait——notify機制;使執行緒等待

5.掛起yield(),執行緒已顯示出讓cpu控制權 }

5. 死亡狀態;{run方法執行結束(清理記憶體,**空間)}

有時兩個或多個執行緒可能會試圖同時訪問乙個資源

在此情況下,資料可能會變得不一致

為了確保在任何時間點乙個共享的資源只被乙個執行緒使用,使用了「同步」

使用同步關鍵字synchronized來進行標記

描述:多個執行緒訪問同一資源物件,可能會造成資源物件資料混亂

解決:同步(鎖)synchronized;

死鎖:描述.當兩個執行緒訪問一對相互依賴的同步資源時,會出現死鎖。

解決:wait——notify{**:生產者、消費者}

效果:執行緒安全了,但效率低

在資源呼叫處加同步————同步塊{synchronized(rs){rs.display2(threadname) }

多執行緒程式設計

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

多執行緒程式設計

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

多執行緒程式設計

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