自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

.NET 4.0中任務(wù)與線程關(guān)系談

原創(chuàng)
開發(fā) 后端
.NET 框架4.0的并行擴(kuò)展仍處于Beta 1階段,可能將向工作中增加任務(wù),理解清楚任務(wù)不是線程非常重要,雖然任務(wù)使用線程運(yùn)行,但這并不意味著.NET 4.0 Beta 1中任務(wù)可以取代線程。

【51CTO獨(dú)家特稿】雖然在.NET 4.0 Beta 1中支持并行擴(kuò)展的CTP(社區(qū)技術(shù)預(yù)覽)下很難在新的并行模式下調(diào)式代碼,但是并不難理解在并行循環(huán)中發(fā)生的事。之所以難以調(diào)試新的基于任務(wù)的程序代碼,最大的問題是CTP沒有為任務(wù)增加調(diào)試功能,IDE(Visual Studio 2008)只能用于調(diào)試線程,因此它無法正確調(diào)試任務(wù)。

如果你了解C風(fēng)格編碼,下面這行文字就是總結(jié)性描述:

  1. (Threads != Tasks) && (Thread != Task) 

你可以在http://www.ddj.com/go-parallel/blog/archives/2009/06/find_john_fast.html;jsessionid=DP2HCMAT3F55PQE1GHRSKHWATMY32JVN查看由Cameron Hughes和Tracey Hughes特別處理過的圖,它們分成了七層進(jìn)行描述,從域模型層到硬件層,應(yīng)用程序任務(wù)層(第三層)位于邏輯任務(wù)層(第四層)和進(jìn)程/線程層(第五層)之上。

正如前面引用的圖所表示的意思,任務(wù)可以同時(shí)運(yùn)行在不同的層上,但都是由線程支持任務(wù)執(zhí)行的,因此任務(wù)要使用處理器時(shí)間從不同線程竊取工作,我已經(jīng)在我之前的文章“.NET 4.0 Beta 1和之前的版本中的工作竊取隊(duì)列”(原文鏈接:http://www.ddj.com/go-parallel/blog/archives/2009/06/work_stealing_q.html;jsessionid=TVDMASWBJE4GZQE1GHOSKHWATMY32JVN)中解釋了這一機(jī)制。

當(dāng)你使用任務(wù)工作時(shí),它們使用基本線程(軟件線程,在某些硬件線程或邏輯內(nèi)核上調(diào)度)運(yùn)行它們的代碼,但在任務(wù)和線程之間沒有一對(duì)一的關(guān)系,這就意味著不是每次創(chuàng)建任務(wù)時(shí)都會(huì)創(chuàng)建一個(gè)線程,CLR創(chuàng)造了必要的線程以支持任務(wù)的執(zhí)行需要,當(dāng)然,這是一個(gè)簡(jiǎn)化版本。

在使用基于任務(wù)的編程時(shí),你可以利用你已掌握的大部分技術(shù),但需要學(xué)習(xí)新的調(diào)試技術(shù),Visual Studio 2010雖然處于Beta 1階段,但仍然提供了兩個(gè)新的調(diào)試窗口:

◆并行堆棧

◆并行任務(wù)

這些新的窗口讓你可以理解正在運(yùn)行的任務(wù)與之相關(guān)的線程之間的關(guān)系,這樣你就可以調(diào)試基于任務(wù)的代碼,不會(huì)再遇到CTP測(cè)試期間發(fā)現(xiàn)的問題。

開始使用基于任務(wù)的算法編碼之前弄清楚任務(wù)和線程之間的差異是很重要的,新的調(diào)試窗口為開發(fā)人員提供了良好的信息理解并行循環(huán)和并行任務(wù)。

許多開發(fā)人員使用并行擴(kuò)展CTP,但沒有合適的調(diào)試器了解具體發(fā)生了什么,它們認(rèn)為任務(wù)難以控制,如果沒有這些新的調(diào)試窗口它們確實(shí)很難理解。

有句丹麥諺語說的好,“迅速執(zhí)行是好運(yùn)之母”,因此需要轉(zhuǎn)向使用基于任務(wù)并行編程!

原文名:Tasks Are Not Threads in .NET 4 Beta 1

作者:Gaston Hillar

【編輯推薦】

  1. .NET緩存機(jī)制探討與比對(duì)
  2. .NET內(nèi)存映射文件原理、創(chuàng)建及進(jìn)程通訊
  3. .NET 4.0 Beta 2將引入新的網(wǎng)絡(luò)功能 修復(fù)大量Bug
  4. .NET 4.0 Beta 1新增STM特性概覽
  5. .NET 4.0 Beta 1將為PLINQ帶來生機(jī)?
責(zé)任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2010-07-19 09:01:54

.NET 4.0緩存

2009-07-10 09:41:08

WCF服務(wù)配置.NET 4.0

2011-06-13 15:45:58

WEB標(biāo)準(zhǔn)SEO

2011-06-13 16:54:25

WEB標(biāo)準(zhǔn)SEO

2009-12-04 09:14:05

.NET 4.0

2009-11-16 09:13:36

GoogleChromeAndroid

2009-10-19 11:28:42

VB.NET語言.NET開發(fā)語言

2009-03-23 10:54:12

.NET契約式編程編程思想

2009-12-02 09:07:45

ASP.NET 4.0

2011-07-25 10:00:59

項(xiàng)目

2009-07-23 11:11:41

2010-05-20 08:50:45

UrlRoutingASP.NET 4.0

2009-03-09 13:46:31

RoutingWebASP.NET

2010-01-05 09:26:13

.NET 4.0

2009-09-02 10:26:59

.NET 4.0多顯示

2022-04-20 09:27:52

業(yè)務(wù)視角信息技術(shù)關(guān)系

2009-07-16 08:53:03

Swing任務(wù)Swing線程

2009-10-13 14:38:15

.NET重寫URL

2009-08-10 18:16:33

ICustomQuer.NET 4.0

2021-02-20 09:47:44

Covid-19工業(yè)智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)