国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C#教程:線程的優(yōu)先權(quán)

C#教程:線程的優(yōu)先權(quán)

內(nèi)容導(dǎo)讀: 每個(gè)線程都具有分配給它的線程優(yōu)先級(jí)。為在公共語言運(yùn)行庫中創(chuàng)建的線程最初分配的優(yōu)先級(jí)為ThreadPriority.Normal。在運(yùn)行庫外創(chuàng)建的線程會(huì)保留它們?cè)谶M(jìn)入托管環(huán)境之前所具有的優(yōu)先級(jí)


線程的優(yōu)先權(quán)
每個(gè)線程都具有分配給它的線程優(yōu)先級(jí)。為在公共語言運(yùn)行庫中創(chuàng)建的線程最初分配的優(yōu)先級(jí)為ThreadPriority.Normal。在運(yùn)行庫外創(chuàng)建的線程會(huì)保留它們?cè)谶M(jìn)入托管環(huán)境之前所具有的優(yōu)先級(jí)。用戶可以使用Thread.Priority屬性獲取或設(shè)置任何線程的優(yōu)先級(jí)。
線程是根據(jù)其優(yōu)先級(jí)而調(diào)度執(zhí)行的。即使線程正在運(yùn)行庫中執(zhí)行,所有線程都是由操作系統(tǒng)分配處理器時(shí)間片的。用于確定線程執(zhí)行順序的調(diào)度算法的詳細(xì)情況隨每個(gè)操作系統(tǒng)的不同而不同。在某些操作系統(tǒng)下,具有最高優(yōu)先級(jí)(相對(duì)于可執(zhí)行線程而言)的線程經(jīng)過調(diào)度后總是首先運(yùn)行。如果具有相同優(yōu)先級(jí)的多個(gè)線程都可用,則計(jì)劃程序?qū)⒈闅v處于該優(yōu)先級(jí)的線程,并為每個(gè)線程提供一個(gè)固定的時(shí)間片來執(zhí)行。如果在給定的優(yōu)先級(jí)上不再有可運(yùn)行的線程,則計(jì)劃程序?qū)⒁频较乱粋€(gè)較低的優(yōu)先級(jí)并在該優(yōu)先級(jí)上調(diào)度線程以執(zhí)行。如果具有較高優(yōu)先級(jí)的線程可以運(yùn)行,則具有較低優(yōu)先級(jí)的線程將被搶先,并允許具有較高優(yōu)先級(jí)的線程再次執(zhí)行。除此之外,當(dāng)應(yīng)用程序的用戶界面在前臺(tái)和后臺(tái)之間移動(dòng)時(shí),操作系統(tǒng)還可以動(dòng)態(tài)調(diào)整線程優(yōu)先級(jí)。其他操作系統(tǒng)可以選擇使用不同的調(diào)度算法。
可以為線程分配以下任何一個(gè)優(yōu)先級(jí)值,如下所示。
Highest
AboveNormal
Normal
BelowNormal
Lowest
示例
線程的優(yōu)先級(jí)
下面的示例展示了如何使用優(yōu)先級(jí)。
using System;
using System.Threading;
class Test
{
static void Main()
{
PriorityTest priorityTest = new PriorityTest();
Thread threadOne = new Thread(new ThreadStart(priorityTest.ThreadMethod));
threadOne.Name = "線程1";
Thread threadTwo = new Thread(new ThreadStart(priorityTest.ThreadMethod));
threadTwo.Name = "線程2";
threadTwo.Priority = ThreadPriority.BelowNormal;
threadOne.Start();
threadTwo.Start();
// 線程休眠20s
Thread.Sleep(20000);
priorityTest.LoopSwitch = False;
}
}
class PriorityTest
{
bool loopSwitch;
public PriorityTest()
{
loopSwitch = True;
}
public bool LoopSwitch
{
set{ loopSwitch = value; }
}
public void ThreadMethod()
{
long threadCount = 0;
while(loopSwitch)
{
threadCount++;
}
Console.WriteLine("{0} with {1,11} priority " +
"has a count = {2,13}", Thread.CurrentThread.Name,
Thread.CurrentThread.Priority.ToString(),
threadCount.ToString("N0"));
}
}
完整程序代碼如下:
★   ★★★★Program.cs主程序文件完整程序代碼★★★★★
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace _8_03
{
class Test
{
static void Main(string[] args)
{
PriorityTest priorityTest = new PriorityTest();
Thread threadOne = new Thread(new ThreadStart(priorityTest.ThreadMethod));
threadOne.Name = "線程1";
Thread threadTwo = new Thread(new ThreadStart(priorityTest.ThreadMethod));
threadTwo.Name = "線程2";
threadTwo.Priority = ThreadPriority.BelowNormal;
threadOne.Start();
threadTwo.Start();
// 線程休眠20秒
Thread.Sleep(20000);
priorityTest.LoopSwitch = false;
}
}
class PriorityTest
{
bool loopSwitch;
public PriorityTest()
{
loopSwitch = true;
}
public bool LoopSwitch
{
set { loopSwitch = value; }
}
public void ThreadMethod()
{
long threadCount = 0;
while (loopSwitch)


Tags:網(wǎng)絡(luò)編程 C#教程 責(zé)任編輯:admin



C#教程:線程的優(yōu)先權(quán)(2)

內(nèi)容導(dǎo)讀: { threadCount++; } Console.WriteLine({0} with {1,11} priority + has a count = {2,13}, Thread.CurrentThread.Name, Thread.CurrentThread.Priority.ToString(), threadCount.ToString(N0)); } } }



{
threadCount++;
}
Console.WriteLine("{0} with {1,11} priority " +
"has a count = {2,13}", Thread.CurrentThread.Name,
Thread.CurrentThread.Priority.ToString(),
threadCount.ToString("N0"));
}
}
}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
c#多線程Semaphore類旗語鎖定
Linux下pthread的讀寫鎖的優(yōu)先級(jí)問題
Java筆記(六 程序、進(jìn)程和線程)
C# 溫故而知新: 線程篇
C#多線程(一)
Java總結(jié)篇系列:Java多線程(二)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服