老司机91精品网站在线观看-老司机67194免费观看-老司国产精品视频-老熟人老女人国产老太-中文字幕日本在线-中文字幕日本一区久久

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

細(xì)說多線程(二)—— 線程的基礎(chǔ)知識

發(fā)布時間:  2012/9/16 6:32:49

目錄

一、線程的定義

二、線程的基礎(chǔ)知識

三、以ThreadStart方式實現(xiàn)多線程

四、CLR線程池的工作者線程

五、CLR線程池的I/O線程

六、異步 SqlCommand

七、并行編程與PLINQ

八、計時器與鎖

 

二、線程的基礎(chǔ)知識

2.1 System.Threading.Thread類

System.Threading.Thread是用于控制線程的基礎(chǔ)類,通過Thread可以控制當(dāng)前應(yīng)用程序域中線程的創(chuàng)建、掛起、停止、銷毀。

它包括以下常用公共屬性:

屬性名稱 說明
CurrentContext 獲取線程正在其中執(zhí)行的當(dāng)前上下文。
CurrentThread 獲取當(dāng)前正在運行的線程。

ExecutionContext

獲取一個 ExecutionContext 對象,該對象包含有關(guān)當(dāng)前線程的各種上下文的信息。
IsAlive 獲取一個值,該值指示當(dāng)前線程的執(zhí)行狀態(tài)。
IsBackground 獲取或設(shè)置一個值,該值指示某個線程是否為后臺線程。
IsThreadPoolThread 獲取一個值,該值指示線程是否屬于托管線程池。
ManagedThreadId 獲取當(dāng)前托管線程的唯一標(biāo)識符。
Name 獲取或設(shè)置線程的名稱。
Priority 獲取或設(shè)置一個值,該值指示線程的調(diào)度優(yōu)先級。
ThreadState 獲取一個值,該值包含當(dāng)前線程的狀態(tài)。


2.1.1 線程的標(biāo)識符

ManagedThreadId 是確認(rèn)線程的唯一標(biāo)識符,程序在大部分情況下都是通過Thread.ManagedThreadId來辨別線程的。而Name是一個可變值,在默認(rèn)時 候,Name為一個空值 Null,開發(fā)人員可以通過程序設(shè)置線程的名稱,但這只是一個輔助功能。


2.1.2 線程的優(yōu)先級別

.NET為線程設(shè)置了Priority屬性來定義線程執(zhí)行的優(yōu)先級別,里面包含5個選項,其中Normal是默認(rèn)值。除非系統(tǒng)有特殊要求,否則不應(yīng)該隨便設(shè)置線程的優(yōu)先級別。

成員名稱 說明
Lowest 可以將 Thread 安排在具有任何其他優(yōu)先級的線程之后。
BelowNormal 可以將 Thread 安排在具有 Normal 優(yōu)先級的線程之后,在具有 Lowest 優(yōu)先級的線程之前。
Normal 默認(rèn)選擇。可以將 Thread 安排在具有 AboveNormal 優(yōu)先級的線程之后,在具有 BelowNormal 優(yōu)先級的線程之前
AboveNormal 可以將 Thread 安排在具有 Highest 優(yōu)先級的線程之后,在具有 Normal 優(yōu)先級的線程之前。
Highest 可以將 Thread 安排在具有任何其他優(yōu)先級的線程之前。


2.1.3 線程的狀態(tài)

通過ThreadState可以檢測線程是處于Unstarted、Sleeping、Running 等等狀態(tài),它比 IsAlive 屬性能提供更多的特定信息。

前面說過,一個應(yīng)用程序域中可能包括多個上下文,而通過CurrentContext可以獲取線程當(dāng)前的上下文。

CurrentThread是最常用的一個屬性,它是用于獲取當(dāng)前運行的線程。


2.1.4 System.Threading.Thread的方法

Thread 中包括了多個方法來控制線程的創(chuàng)建、掛起、停止、銷毀,以后來的例子中會經(jīng)常使用。

方法名稱 說明
Abort()     終止本線程。
GetDomain() 返回當(dāng)前線程正在其中運行的當(dāng)前域。
GetDomainId() 返回當(dāng)前線程正在其中運行的當(dāng)前域Id。
Interrupt() 中斷處于 WaitSleepJoin 線程狀態(tài)的線程。
Join() 已重載。 阻塞調(diào)用線程,直到某個線程終止時為止。
Resume() 繼續(xù)運行已掛起的線程。
Start()   執(zhí)行本線程。
Suspend() 掛起當(dāng)前線程,如果當(dāng)前線程已屬于掛起狀態(tài)則此不起作用
Sleep()   把正在運行的線程掛起一段時間。

 

2.1.5 開發(fā)實例

以下這個例子,就是通過Thread顯示當(dāng)前線程信息

 1         static void Main(string[] args)
 2         {
 3             Thread thread = Thread.CurrentThread;
 4             thread.Name = "Main Thread";
 5             string threadMessage = string.Format("Thread ID:{0}\n    Current AppDomainId:{1}\n    "+
 6                 "Current ContextId:{2}\n    Thread Name:{3}\n    "+
 7                 "Thread State:{4}\n    Thread Priority:{5}\n",
 8                 thread.ManagedThreadId, Thread.GetDomainID(), Thread.CurrentContext.ContextID,
 9                 thread.Name, thread.ThreadState, thread.Priority);
10             Console.WriteLine(threadMessage);
11             Console.ReadKey();
12         }

 

運行結(jié)果

 

2.2  System.Threading 命名空間

在 System.Threading命名空間內(nèi)提供多個方法來構(gòu)建多線程應(yīng)用程序,其中ThreadPool與Thread是多線程開發(fā)中最常用到的, 在.NET中專門設(shè)定了一個CLR線程池專門用于管理線程的運行,這個CLR線程池正是通過ThreadPool類來管理。而Thread是管理線程的最 直接方式,下面幾節(jié)將詳細(xì)介紹有關(guān)內(nèi)容。

類     說明
AutoResetEvent 通知正在等待的線程已發(fā)生事件。無法繼承此類。
ExecutionContext 管理當(dāng)前線程的執(zhí)行上下文。無法繼承此類。
Interlocked 為多個線程共享的變量提供原子操作。
Monitor 提供同步對對象的訪問的機(jī)制。
Mutex 一個同步基元,也可用于進(jìn)程間同步。
Thread 創(chuàng)建并控制線程,設(shè)置其優(yōu)先級并獲取其狀態(tài)。
ThreadAbortException 在對 Abort 方法進(jìn)行調(diào)用時引發(fā)的異常。無法繼承此類。
ThreadPool 提供一個線程池,該線程池可用于發(fā)送工作項、處理異步 I/O、代表其他線程等待以及處理計時器。
Timeout 包含用于指定無限長的時間的常數(shù)。無法繼承此類。
Timer 提供以指定的時間間隔執(zhí)行方法的機(jī)制。無法繼承此類。
WaitHandle 封裝等待對共享資源的獨占訪問的操作系統(tǒng)特定的對象。


在System.Threading中的包含了下表中的多個常用委托,其中ThreadStart、ParameterizedThreadStart是最常用到的委托。
由ThreadStart生成的線程是最直接的方式,但由ThreadStart所生成并不受線程池管理。
而ParameterizedThreadStart是為異步觸發(fā)帶參數(shù)的方法而設(shè)的,在下一節(jié)將為大家逐一細(xì)說。

委托 說明
ContextCallback 表示要在新上下文中調(diào)用的方法。
ParameterizedThreadStart 表示在 Thread 上執(zhí)行的方法。
ThreadExceptionEventHandler 表示將要處理 Application 的 ThreadException 事件的方法。
ThreadStart 表示在 Thread 上執(zhí)行的方法。
TimerCallback 表示處理來自 Timer 的調(diào)用的方法。
WaitCallback 表示線程池線程要執(zhí)行的回調(diào)方法。
WaitOrTimerCallback 表示當(dāng) WaitHandle 超時或終止時要調(diào)用的方法。

 

2.3 線程的管理方式

通 過ThreadStart來創(chuàng)建一個新線程是最直接的方法,但這樣創(chuàng)建出來的線程比較難管理,如果創(chuàng)建過多的線程反而會讓系統(tǒng)的性能下載。有見及 此,.NET為線程管理專門設(shè)置了一個CLR線程池,使用CLR線程池系統(tǒng)可以更合理地管理線程的使用。所有請求的服務(wù)都能運行于線程池中,當(dāng)運行結(jié)束時 線程便會回歸到線程池。通過設(shè)置,能控制線程池的最大線程數(shù)量,在請求超出線程最大值時,線程池能按照操作的優(yōu)先級別來執(zhí)行,讓部分操作處于等待狀態(tài),待 有線程回歸時再執(zhí)行操作。

基礎(chǔ)知識就為大家介紹到這里,下面將詳細(xì)介紹多線程的開發(fā)。
 

億恩-天使(QQ:530997) 電話 037160135991 服務(wù)器租用,托管歡迎咨詢。


本文出自:億恩科技【www.ypdoo.com.cn】

服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務(wù)熱線

     
     
    日本乱中文字幕系列| 精品久久久久久综合网| 国产一级强片在线观看| 日韩免费在线观看视频| 尤物视频网站在线观看| 欧美激情伊人| 成人a级高清视频在线观看| 日本特黄特色aaa大片免费| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 91麻豆tv| 91麻豆国产| 尤物视频网站在线| 午夜在线亚洲| 欧美18性精品| 亚洲精品中文一区不卡| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 黄视频网站免费看| 毛片高清| 欧美激情一区二区三区在线| 午夜在线观看视频免费 成人| 国产精品123| 日韩专区第一页| 一本伊大人香蕉高清在线观看| 成人在免费观看视频国产| 午夜精品国产自在现线拍| 一级女性全黄久久生活片| 国产一区二区高清视频| 国产亚洲免费观看| 亚洲精品久久久中文字| 成人免费高清视频| 久久久成人网| 亚洲 男人 天堂| 四虎影视精品永久免费网站 | 美女被草网站| 亚洲精品中文一区不卡| 日韩av片免费播放| 成人免费高清视频| 色综合久久久久综合体桃花网| 黄色免费三级| 99热精品在线| 日韩免费在线视频| 日韩一级精品视频在线观看| 国产一区精品| 国产一区二区精品| 欧美激情一区二区三区中文字幕| 九九精品在线| 久久国产一区二区| 欧美大片一区| 日韩在线观看视频网站| 国产高清在线精品一区二区| 欧美电影免费| 青草国产在线| 欧美激情一区二区三区在线| 日韩一级黄色| 精品国产一区二区三区久 | 亚洲爆爽| 九九精品在线播放| 999久久狠狠免费精品| 日韩专区第一页| 亚洲精品中文字幕久久久久久| 国产a网| 可以免费看污视频的网站| 亚洲 男人 天堂| 一级女人毛片人一女人| 超级乱淫黄漫画免费| 一本高清在线| 成人高清视频在线观看| 欧美一级视频免费| 午夜激情视频在线观看| 精品国产三级a| 精品国产亚一区二区三区| 欧美电影免费看大全| 日韩专区在线播放| 国产成人精品在线| 你懂的国产精品| 欧美激情在线精品video| 成人免费一级纶理片| 99久久精品国产国产毛片| 国产成人欧美一区二区三区的| 99热热久久| 美女被草网站| 国产亚洲精品aaa大片| 欧美激情一区二区三区视频 | 二级特黄绝大片免费视频大片| 国产成人精品综合久久久| 日韩一级黄色| 中文字幕一区二区三区精彩视频| 国产不卡在线观看视频| 国产美女在线一区二区三区| 精品国产一区二区三区久 | 国产成人精品影视| 九九久久99综合一区二区| 久久国产一区二区| 久久国产精品自由自在| 欧美国产日韩在线| 久久99中文字幕| 国产成人精品影视| 九九久久99综合一区二区| 亚欧成人乱码一区二区| 国产一区精品| 国产精品1024在线永久免费| 青青青草视频在线观看| 欧美爱色| 一级女性全黄久久生活片| 欧美大片毛片aaa免费看| 可以在线看黄的网站| 国产福利免费观看| 一级毛片看真人在线视频| 欧美激情伊人| 欧美日本韩国| 国产a毛片| 日本特黄特色aaa大片免费| 日本免费乱人伦在线观看| 青青青草影院 | 色综合久久天天综合绕观看| 九九久久99综合一区二区| 日韩免费在线视频| 亚洲www美色| 欧美1区| 九九精品在线播放| 日本特黄特色aa大片免费| 欧美一级视频免费观看| 国产一级生活片| 日本在线不卡免费视频一区| 亚洲精品久久久中文字| 午夜在线影院| 成人免费网站视频ww| 精品视频免费看| 青青青草影院| 久久福利影视| 黄视频网站免费| 成人av在线播放| 欧美1区| 麻豆污视频| 成人免费观看网欧美片| 91麻豆国产| 国产原创中文字幕| 91麻豆精品国产自产在线| 国产高清在线精品一区a| 日本伦理片网站| 久久精品人人做人人爽97| 日日日夜夜操| 欧美1区| 国产成人精品在线| 久久精品道一区二区三区| 人人干人人草| 免费国产在线观看| 精品国产香蕉伊思人在线又爽又黄| 精品国产一区二区三区免费| 亚欧乱色一区二区三区| 中文字幕一区二区三区 精品| 国产一区二区精品久| 久久精品道一区二区三区| 沈樵在线观看福利| 国产激情视频在线观看| 国产原创中文字幕| 九九免费高清在线观看视频| a级毛片免费观看网站| 国产伦精品一区二区三区无广告| 亚洲爆爽| 亚洲www美色| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日韩免费片| 国产成人精品综合在线| 91麻豆精品国产自产在线观看一区| 久久国产精品自线拍免费| 欧美激情一区二区三区在线| 欧美1区| 九九精品在线| 国产成人精品影视| 国产成人精品综合在线| 99久久精品国产国产毛片| 黄色免费三级| 欧美一级视频免费观看| 精品视频一区二区三区免费| 国产精品免费久久| 日韩男人天堂| 沈樵在线观看福利| 精品国产香蕉伊思人在线又爽又黄| 你懂的福利视频| 国产国语对白一级毛片| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 中文字幕Aⅴ资源网| 国产网站麻豆精品视频| 国产视频一区二区在线播放| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 成人av在线播放| 四虎论坛| 黄视频网站在线免费观看| 国产美女在线一区二区三区| 91麻豆tv| 成人高清视频在线观看| 免费毛片播放| 可以免费看污视频的网站| 国产网站免费| 欧美另类videosbestsex| a级毛片免费观看网站| 香蕉视频三级| 可以在线看黄的网站| a级毛片免费全部播放|