激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

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

        細(xì)說多線程(一)—— 線程的定義

        發(fā)布時間:  2012/9/16 6:31:57

        引言

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

        目錄

        一、線程的定義

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

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

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

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

        六、異步 SqlCommand

        七、并行編程與PLINQ

        八、計(jì)時器與鎖

         

        一、線程的定義

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

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

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

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

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

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

         

        1.2 多線程

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

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

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


        本文出自:億恩科技【mszdt.com】

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

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營性ICP/ISP證:贛B2-20080012
      9. 服務(wù)器/云主機(jī) 24小時售后服務(wù)電話:0371-60135900
      10. 虛擬主機(jī)/智能建站 24小時售后服務(wù)電話:0371-60135900
      11. 專注服務(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ù)熱線