多執行緒程式設計

2021-07-04 20:29:20 字數 1323 閱讀 5834

1、執行緒的狀態

建立狀態: 準備好了乙個多執行緒的物件

就緒狀態: 呼叫了start()方法,等待cpu進行排程

執行狀態: 執行run()方法

阻塞狀態:暫時停止執行,可能將資源交給其他執行緒使用

終止狀態(死亡狀態):執行緒銷毀

2、執行緒的常用方法(thread類)

①、取得執行緒名稱

getname();    

thread.currentthread().getname();

②、取得當前執行緒物件

currentthread();

thread.currentthread()

③、判斷執行緒是否啟動

isalive();

t1.isalive

④、執行緒的強行執行

join();

t1.join();

⑤、執行緒的休眠

sleep();

thread.sleep();

3、執行緒的禮讓:

yield();

thread.yield();

4、執行緒的優先順序

①、優先順序順序設定

1-min_priority    

t.setpriority(thread.min_priority);

10-max_priority

t.setpriority(thread.max_priority);

5-norm_priority

t.setpriority(thread.norm_priority);

如果什麼都不設定,預設值是5

5、執行緒的同步和死鎖:

synchronized

①、同步**塊的格式

synchronized(同步物件)

例:public class a

}class bb implements runnable catch (interruptedexception e)

system.out.println("車票"+this.ticket--);}}

}}}②、同步方法

除了**塊可以同步,方法也是可以同步的:

synchronized void 方法名稱(){}

例:public class a

}class bb implements runnable catch (interruptedexception e)

system.out.println("車票"+this.ticket--);}}

public void run()}}

③、死鎖

解決方法:降低標準

6、執行緒的什麼週期

多執行緒程式設計

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

多執行緒程式設計

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

多執行緒程式設計

宣告乙個thread類的子類,並覆蓋run 方法。class mythread extends thread 宣告乙個實現runnable介面的類,並實現run 方法 class mathread implements runnable public void run 實現該方法 1.新建狀態 通過...