99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

細(xì)說(shuō)多線(xiàn)程(一)——線(xiàn)程的定義

引言

專(zhuān)注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)南澗免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

本文主要從線(xiàn)程的基礎(chǔ)用法,CLR線(xiàn)程池當(dāng)中工作者線(xiàn)程與I/O線(xiàn)程的開(kāi)發(fā),并行操作PLINQ等多個(gè)方面介紹多線(xiàn)程的開(kāi)發(fā)。
其中委托的BeginInvoke方法以及回調(diào)函數(shù)最為常用。
而 I/O線(xiàn)程可能容易遭到大家的忽略,其實(shí)在開(kāi)發(fā)多線(xiàn)程系統(tǒng),更應(yīng)該多留意I/O線(xiàn)程的操作。特別是在ASP.NET開(kāi)發(fā)當(dāng)中,可能更多人只會(huì)留意在客戶(hù)端 使用Ajax或者在服務(wù)器端使用UpdatePanel。其實(shí)合理使用I/O線(xiàn)程在通訊項(xiàng)目或文件下載時(shí),能盡可能地減少I(mǎi)IS的壓力。
并行編程是Framework4.0中極力推廣的異步操作方式,更值得更深入地學(xué)習(xí)。
希望本篇文章能對(duì)各位的學(xué)習(xí)研究有所幫助,當(dāng)中有所錯(cuò)漏的地方敬請(qǐng)點(diǎn)評(píng)。

目錄

一、線(xiàn)程的定義

二、線(xiàn)程的基礎(chǔ)知識(shí)

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

四、CLR線(xiàn)程池的工作者線(xiàn)程

五、CLR線(xiàn)程池的I/O線(xiàn)程

六、異步 SqlCommand

七、并行編程與PLINQ

八、計(jì)時(shí)器與鎖

 

一、線(xiàn)程的定義

 1. 1 進(jìn)程、應(yīng)用程序域與線(xiàn)程的關(guān)系

進(jìn)程(Process)是Windows系統(tǒng)中的一個(gè)基本概念,它包含著一個(gè)運(yùn)行程序所需要的資源。進(jìn)程之間是相對(duì)獨(dú)立的,一個(gè)進(jìn)程無(wú)法訪問(wèn)另一個(gè) 進(jìn)程的數(shù)據(jù)(除非利用分布式計(jì)算方式),一個(gè)進(jìn)程運(yùn)行的失敗也不會(huì)影響其他進(jìn)程的運(yùn)行,Windows系統(tǒng)就是利用進(jìn)程把工作劃分為多個(gè)獨(dú)立的區(qū)域的。進(jìn) 程可以理解為一個(gè)程序的基本邊界。

應(yīng)用程序域(AppDomain)是一個(gè)程序運(yùn)行的邏輯區(qū)域,它可以視為一個(gè)輕量級(jí)的進(jìn)程,.NET的程序集正是在應(yīng)用程序域中運(yùn)行的,一個(gè)進(jìn)程可 以包含有多個(gè)應(yīng)用程序域,一個(gè)應(yīng)用程序域也可以包含多個(gè)程序集。在一個(gè)應(yīng)用程序域中包含了一個(gè)或多個(gè)上下文context,使用上下文CLR就能夠把某些 特殊對(duì)象的狀態(tài)放置在不同容器當(dāng)中。

線(xiàn)程(Thread)是進(jìn)程中的基本執(zhí)行單元,在進(jìn)程入口執(zhí)行的第一個(gè)線(xiàn)程被視為這個(gè)進(jìn)程的主線(xiàn)程。在.NET應(yīng)用程序中,都是以Main()方法 作為入口的,當(dāng)調(diào)用此方法時(shí)系統(tǒng)就會(huì)自動(dòng)創(chuàng)建一個(gè)主線(xiàn)程。線(xiàn)程主要是由CPU寄存器、調(diào)用棧和線(xiàn)程本地存儲(chǔ)器(Thread Local Storage,TLS)組成的。CPU寄存器主要記錄當(dāng)前所執(zhí)行線(xiàn)程的狀態(tài),調(diào)用棧主要用于維護(hù)線(xiàn)程所調(diào)用到的內(nèi)存與數(shù)據(jù),TLS主要用于存放線(xiàn)程的狀 態(tài)信息。

進(jìn)程、應(yīng)用程序域、線(xiàn)程的關(guān)系如下圖,一個(gè)進(jìn)程內(nèi)可以包括多個(gè)應(yīng)用程序域,也有包括多個(gè)線(xiàn)程,線(xiàn)程也可以穿梭于多個(gè)應(yīng)用程序域當(dāng)中。但在同一個(gè)時(shí)刻,線(xiàn)程只會(huì)處于一個(gè)應(yīng)用程序域內(nèi)。

細(xì)說(shuō)多線(xiàn)程(一)—— 線(xiàn)程的定義

 
由于本文是以介紹多線(xiàn)程技術(shù)為主題,對(duì)進(jìn)程、應(yīng)用程序域的介紹就到此為止。關(guān)于進(jìn)程、線(xiàn)程、應(yīng)用程序域的技術(shù),在“C#綜合揭秘——細(xì)說(shuō)進(jìn)程、應(yīng)用程序域與上下文”會(huì)有詳細(xì)介紹。

 

1.2 多線(xiàn)程

在單CPU系統(tǒng)的一個(gè)單位時(shí)間(time slice)內(nèi),CPU只能運(yùn)行單個(gè)線(xiàn)程,運(yùn)行順序取決于線(xiàn)程的優(yōu)先級(jí)別。如果在單位時(shí)間內(nèi)線(xiàn)程未能完成執(zhí)行,系統(tǒng)就會(huì)把線(xiàn)程的狀態(tài)信息保存到線(xiàn)程的本地 存儲(chǔ)器(TLS) 中,以便下次執(zhí)行時(shí)恢復(fù)執(zhí)行。而多線(xiàn)程只是系統(tǒng)帶來(lái)的一個(gè)假像,它在多個(gè)單位時(shí)間內(nèi)進(jìn)行多個(gè)線(xiàn)程的切換。因?yàn)榍袚Q頻密而且單位時(shí)間非常短暫,所以多線(xiàn)程可 被視作同時(shí)運(yùn)行。

適當(dāng)使用多線(xiàn)程能提高系統(tǒng)的性能,比如:在系統(tǒng)請(qǐng)求大容量的數(shù)據(jù)時(shí)使用多線(xiàn)程,把數(shù)據(jù)輸出工作交給異步線(xiàn)程,使主線(xiàn)程保持其穩(wěn)定性去處理其他問(wèn)題。但需要注意一點(diǎn),因?yàn)镃PU需要花費(fèi)不少的時(shí)間在線(xiàn)程的切換上,所以過(guò)多地使用多線(xiàn)程反而會(huì)導(dǎo)致性能的下降。

對(duì)JAVA與.NET開(kāi)發(fā)有興趣的朋友歡迎加入QQ群:162338858 細(xì)說(shuō)多線(xiàn)程(一)—— 線(xiàn)程的定義

 

文章標(biāo)題:細(xì)說(shuō)多線(xiàn)程(一)——線(xiàn)程的定義
標(biāo)題鏈接:http://www.yijiale78.com/article30/gjhoso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)網(wǎng)站改版Google外貿(mào)建站網(wǎng)站維護(hù)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)