日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产农村妇女aaaaa视频 | 一级片视频网站 | 国产精品久久久久久久9999 | 射区导航| 欧美自拍偷拍一区 | 亚洲午夜精选 | 亚洲国产日韩a在线播放性色 | 日本少妇激情舌吻 | 九色在线视频 | 日本专区在线 | 中文字幕乱码亚洲无线三区 | 不卡av电影在线 | 少妇人妻互换不带套 | 成年人在线视频网站 | 国产精品第108页 | 日韩欧美卡一卡二 | 亚洲伦理久久 | 噼里啪啦免费观看 | 国产欧美日韩成人 | 天天综合av | 美女一级黄 | 嫩草导航| 黄网站免费入口 | 在线免费看av片 | 黑人黄色大片 | 日日摸夜夜添夜夜添高潮喷水 | 亚洲素人在线 | 特黄视频免费看 | 伊人av综合 | 欧美精品一区视频 | 中文字幕日本在线观看 | 毛片毛片毛片毛片毛片毛片毛片 | 国产成人精品午夜福利Av免费 | 一区二区三区久久 | 欧美激情在线观看视频 | 成人免费毛片果冻 | 五月婷婷六月合 | 日韩成人精品 | 91高潮大合集爽到抽搐 | 亚洲欧美激情小说另类 | 婷婷综合在线视频 | xxxxxxxx黄色片 | 国产女女调教女同 | 国产激情a | 在线中出 | 人妻熟妇又伦精品视频a | 成年人在线观看av | 欧美激情一区在线 | 曰本黄色大片 | 免费黄色在线看 | 精品久久久久久久久久久久 | 免费小视频 | 18岁毛片 | 中文在线亚洲 | 自拍一级片 | 射射射综合网 | 欧美a级黄色片 | 亚洲激情a | 日本中文字幕在线播放 | 成人免费精品视频 | 国产色av | 国产一区啪啪 | 免费看黄20分钟 | 91亚洲影院| 岛国av中文字幕 | 97色爱| 91九色视频| 久久精品牌麻豆国产大山 | 欧美三级视频在线 | 精品在线观看视频 | 91欧美亚洲| 黄色中文 | 不许穿内裤随时挨c调教h苏绵 | 一区二区三区精品视频 | 日韩区一区二 | 特黄特色大片免费播放器使用方法 | 久草视频在线观 | 美女隐私无遮挡免费 | 国产精品无码中文字幕 | 国产精品第八页 | 色综合天天综合网天天狠天天 | 成人深夜视频 | 亚洲精品av在线 | 中文字幕在线免费观看视频 | 国产日韩精品一区二区 | 美女视频久久 | 老司机黄色片 | av免费观看不卡 | 99福利网| 国产99在线播放 | 黄色高清视频 | 亚洲在线观看一区二区 | 天天色视频 | 性喷潮久久久久久久久 | 婷婷狠狠操| 精品影院 | 黄色小网站入口 | 久久亚洲天堂网 | 伊人网狼人 |