C#使用ThreadPriority設(shè)置線程優(yōu)先級
一、簡介
如果在應(yīng)用程序中有多個線程在運(yùn)行,但一些線程比另一些線程重要,這種情況下可以在一個進(jìn)程中為不同的線程指定不同的優(yōu)先級。線程的優(yōu)先級可以通過Thread類Priority屬性設(shè)置,Priority屬性是一個ThreadPriority型枚舉,列舉了5個優(yōu)先等級:AboveNormal、BelowNormal、Highest、Lowest、Normal。公共語言運(yùn)行庫默認(rèn)是Normal類型的。
二、代碼
class Program { static void Main(string[] args) { Thread threadA = new Thread(ThreadMethod); //執(zhí)行的必須是無返回值的方法 threadA.Name = "A"; Thread threadB = new Thread(ThreadMethod); threadB.Name = "B"; threadA.Priority = ThreadPriority.Highest; threadB.Priority = ThreadPriority.BelowNormal; threadB.Start(); threadA.Start(); Thread.CurrentThread.Name = "C";//默認(rèn)為Normal ThreadMethod(new object()); Console.ReadKey(); } public static void ThreadMethod(object parameter) { for (int i = 1; i <= 500; i++) { Console.Write(Thread.CurrentThread.Name); } } }
三、運(yùn)行結(jié)果
上面的代碼中有三個線程,threadA,threadB和主線程,threadA優(yōu)先級最高,threadB優(yōu)先級最低。這一點(diǎn)從運(yùn)行結(jié)果中也可以看出,線程B偶爾會出現(xiàn)在主線程和線程A前面。當(dāng)有多個線程同時處于可執(zhí)行狀態(tài),系統(tǒng)優(yōu)先執(zhí)行優(yōu)先級較高的線程,但這只意味著優(yōu)先級較高的線程占有更多的CPU時間,并不意味著一定要先執(zhí)行完優(yōu)先級較高的線程,才會執(zhí)行優(yōu)先級較低的線程。
優(yōu)先級越高表示CPU分配給該線程的時間片越多,執(zhí)行時間就多
優(yōu)先級越低表示CPU分配給該線程的時間片越少,執(zhí)行時間就少
到此這篇關(guān)于C#使用ThreadPriority設(shè)置線程優(yōu)先級的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C# Onnx實(shí)現(xiàn)特征匹配DeDoDe檢測
這篇文章主要為大家詳細(xì)介紹了C# Onnx如何實(shí)現(xiàn)特征匹配DeDoDe檢測,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11C#?Winform消息通知之系統(tǒng)本地通知local?toast?notification
這篇文章主要為大家介紹了C#?Winform消息通知之系統(tǒng)本地通知local?toast?notification使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08C#使用protobuf-net進(jìn)行序列化的詳細(xì)操作
本文帶領(lǐng)大家學(xué)習(xí)C#中protobuf-net工具的另一種使用體驗(yàn),這個工具的使用體驗(yàn)屬于Code-First模式,先定義類型,并使用注解進(jìn)行標(biāo)記,不需要先編寫.proto文件,感興趣的朋友跟隨小編一起看看吧2021-11-11C# Fiddler插件實(shí)現(xiàn)網(wǎng)站離線瀏覽功能
本文主要介紹了C# Fiddler插件實(shí)現(xiàn)網(wǎng)站離線瀏覽功能的原理與方法。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02