日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CCR源码分析-CCR架构

發(fā)布時間:2023/12/9 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CCR源码分析-CCR架构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

CCR,并發(fā)與協(xié)調(diào)運行時(Concurrency and Coordination Runtime)。從名字里我們就可以知道,這個東東是用來簡化并發(fā)程序設(shè)計的。為何要并發(fā)呢?因為我們有多個任務(wù)需要處理,如果能同時做就會充分利用硬 件而減少處理的時間。自然的,CCR也是以“任務(wù)”為核心進行設(shè)計的,CCR中的代碼也可以分為如下幾個功能:描述任務(wù)、生成任務(wù)、調(diào)度任務(wù)和執(zhí)行任務(wù)。

描述任務(wù)

對于計算機來說一個任務(wù)就是一段需要執(zhí)行的代碼,于是CCR有一個對任務(wù)的最抽象描述:ITask接口

任務(wù)被封裝在ITask實例中,當(dāng)CCR調(diào)度這個任務(wù)實例去執(zhí)行之后,CCR會調(diào)用ITask.Execute方法來執(zhí)行該任務(wù)。在ITask接口之下,派生出來各種各樣的Task

本節(jié)討論的是CCR的整體結(jié)構(gòu),后面我們會具體討論這些classes。

?

生成任務(wù)

對 于計算機來說,任務(wù)都是類似的:按給定的參數(shù)執(zhí)行一個給定的方法。但是對于程序員來說,往往并非這么簡單。從時序上來講,任務(wù)可以分為這么幾種情況:算法 和參數(shù)都已經(jīng)齊備的、已知算法等待參數(shù)的和已知參數(shù)等待算法的。對于第一種情況,直接使用Thread或者ThreadPool也可以很方便的解決問題, 當(dāng)然CCR也提供了相應(yīng)的支持。對于后面兩種情況,CCR使用了計算過程與參數(shù)分離描述的方法來解決。計算機的程序的作用就是處理流程相對固定的事務(wù),往 往計算邏輯是有限的而參數(shù)是變化無窮的。于是CCR將計算過程與參數(shù)分離開來,調(diào)用者不需要知道如何處理這些參數(shù),甚至不需要知道是誰何時來進行處理,它 只需要把要計算的數(shù)據(jù)發(fā)送到一個特定的地方即可,而這些數(shù)據(jù)會被可信賴的得以處理。當(dāng)計算過程接收到適當(dāng)?shù)膮?shù)的時候,也就生成了任務(wù)。CCR中Port 和PortSet類型就是這樣的參數(shù)存儲器。ReceiverTask及其子類則是封裝計算過程的類型,Port可以被注冊到相應(yīng)的 ReceiverTask中,當(dāng)有其他用戶向Port中投遞元素時,就會生成任務(wù)并放入相應(yīng)的DispatcherQueue中等待調(diào)度。

?

?

調(diào)度任務(wù)

需 要執(zhí)行的任務(wù)是有先來后到、輕重緩急的,同時計算機的CPU資源是有限度,每個核(包括超線程的邏輯核)在同一時間只能處理一個線程。這時候就需要進行一 定的調(diào)度。為了充分利用CPU,自然是要使用多線程來執(zhí)行任務(wù)。如果不使用CCR,我們也可以用.net內(nèi)置的Thread和ThreadPool都可以 用的并行任務(wù)調(diào)度,其中又?jǐn)?shù)ThreadPool用起來比較簡單,直接把要執(zhí)行的方法丟進去就好了。但是這簡單的背后也存在問題,雖然是解決了任務(wù)的先來 后到,但是沒辦法分輕重緩急了,ThreadPool堅持認(rèn)定CPU面前人人平等的原則,晚來的就是要侯著等先到底執(zhí)行完。直接用Thread也有問題, 就是無法很容易的控制線程的數(shù)量以及重用線程,而線程本身又是一個比較重型的資源,反反復(fù)復(fù)的創(chuàng)建和銷毀很影響效率。為了解決這些問題CCR提出了自己的 任務(wù)調(diào)度方案。DispatcherQueue。

DispatcherQueue 本質(zhì)上就是一個任務(wù)隊列,它使得任務(wù)按照先來后到的順序執(zhí)行。但是你可以創(chuàng)建多個DispatcherQueue,比如把高優(yōu)先級的任務(wù)放入一個隊列,把 普通優(yōu)先級的放入另外一個,那么高優(yōu)先級的任務(wù)不需要等待前面所有普通優(yōu)先級任務(wù)都執(zhí)行完畢才得到執(zhí)行。

執(zhí)行任務(wù)

Dispatcher是CCR的執(zhí)行單元,也是一個線程池的實現(xiàn)。既然是線程池,那么就必然有它所要管理的工作線程,TaskExecutionWorker類封裝了Dispatcher中工作線程所要執(zhí)行的方法以及一些必要的處理。

?

總結(jié)

以上是生活随笔為你收集整理的CCR源码分析-CCR架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: aaa大片十八岁禁止 中文字幕亚洲在线观看 | 中文字幕一区二区三区日韩精品 | 嫩草影院一区 | 97超碰国产精品无码蜜芽 | 波多野结衣中文字幕一区二区 | 456av| 538任你躁在线精品免费 | 少妇黄色片 | 超碰人人干| 久久无码性爱视频 | 久久噜噜噜精品国产亚洲综合 | 91射| 99久久久无码国产精品性 | 天天躁日日躁狠狠躁伊人 | 久久久亚洲国产精品 | 久久久久久黄 | 大陆明星乱淫(高h)小说 | 超碰97在线资源站 | 亚洲欧美日韩在线一区二区 | 黄色草逼视频 | 四十路av | 97影音| 91性视频 | 西野翔夫の目の前で犯在线 | 涩漫天堂 | 欧美黄色大片免费观看 | 亚洲日本免费 | 天天夜夜草 | 亚州福利 | 素人一区 | 日日做夜夜爽毛片麻豆 | 91午夜在线观看 | 999热精品视频 | 国产在线欧美日韩 | 女性女同性aⅴ免费观女性恋 | 活大器粗np高h一女多夫 | 狠狠操夜夜爽 | 亚洲一区二区国产精品 | 亚洲成人高清在线观看 | 国产成人无码a区在线观看视频 | 97在线精品视频 | 美国福利片| 国产又色又爽 | 91国产免费看 | 日韩精品无码一区二区三区 | 性网址| 午夜日韩在线 | 久久97超碰| 素人av在线 | julia在线播放88mav | 日韩一级免费视频 | 狠狠操亚洲 | 亚洲自拍天堂 | 日韩欧美中文字幕一区 | 一本久道久久 | 夜夜嗨av一区二区三区网页 | 免费观看污视频 | 亚洲免费网站 | 亚洲AV无码久久精品浪潮 | 三级色视频 | 青青草国产精品视频 | 美女一区二区三区四区 | 玖玖免费 | 老司机午夜性大片 | 婷婷中文 | 午夜天堂精品 | 噼里啪啦免费看 | 亚洲午夜免费 | 日本三级视频在线 | 在线看片一区二区 | 毛片在线看网站 | 人妻少妇精品一区二区三区 | 久久久久亚洲av片无码 | 红桃av| 红桃视频一区 | 欧美日韩有码 | 黄色在线免费观看 | 国产在线一二三 | 夜夜嗨aⅴ一区二区三区 | www.亚洲在线| 美女扣逼喷水视频 | 毛片黄片免费看 | 免费看麻豆| 在线观看的毛片 | 亚洲自拍偷拍在线 | 少妇高潮一区二区三区喷水 | 97超在线| 久久久黄色 | 深夜在线网站 | 精品久久久久久久久久久 | 女生扒开尿口让男生桶 | 日韩网站在线播放 | 777免费视频 | 欧美成人日韩 | 肉色欧美久久久久久久免费看 | 久久精品小视频 | 69人妻精品久久无人专区 | 自拍偷拍亚洲区 | 中国免费毛片 |