日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

正文

基于任務(wù)的程序設(shè)計(jì)(15)

C#并行編程高級(jí)教程 作者:(美)Gastón C.Hillar


1.6.1  以并發(fā)的思想指導(dǎo)設(shè)計(jì)

在設(shè)計(jì)代碼發(fā)揮多核優(yōu)勢(shì)的時(shí)候,非常重要的一點(diǎn)在于不能認(rèn)為運(yùn)行在C#應(yīng)用程序中的代碼是孤立運(yùn)行的。C#已經(jīng)支持并發(fā)代碼,因此很多代碼片段能夠同時(shí)運(yùn)行在同一個(gè)進(jìn)程中,或者以交錯(cuò)執(zhí)行的方式運(yùn)行。同樣的類方法可以在并發(fā)代碼中執(zhí)行。如果這個(gè)方法在靜態(tài)變量中保存了一個(gè)狀態(tài),之后又使用了這個(gè)已保存的狀態(tài),那么很多并發(fā)執(zhí)行可能會(huì)導(dǎo)致異常且不可預(yù)測(cè)的結(jié)果。

如前所述,多核處理器的并行程序設(shè)計(jì)使用了共享內(nèi)存的模型。數(shù)據(jù)保存在同一個(gè)共享內(nèi)存中,因此,如果設(shè)計(jì)的時(shí)候沒(méi)有考慮并發(fā)的問(wèn)題,那么就有可能造成異常結(jié)果。

在設(shè)計(jì)類和方法時(shí),最好將它們?cè)O(shè)計(jì)為能夠沒(méi)有副作用(side effect)地并發(fā)運(yùn)行。如果類、方法和組件在設(shè)計(jì)的時(shí)候沒(méi)有考慮到并發(fā),那么在并行化的代碼中使用它們的時(shí)候最好對(duì)它們的設(shè)計(jì)進(jìn)行測(cè)試。

在設(shè)計(jì)過(guò)程中找出的每一個(gè)子問(wèn)題都應(yīng)該能夠在其他子問(wèn)題并發(fā)執(zhí)行的同時(shí)執(zhí)行。如果您覺(jué)得由于某個(gè)子問(wèn)題使用了遺留的類、方法或組件,因此當(dāng)這個(gè)子問(wèn)題運(yùn)行的時(shí)候應(yīng)該限制并發(fā)代碼,那么應(yīng)該在設(shè)計(jì)文檔中將這個(gè)問(wèn)題闡述清楚。一旦開(kāi)始使用并行化代碼,很容易與其他既有的類、方法和組件進(jìn)行協(xié)作,而那些類、方法和組件很可能會(huì)產(chǎn)生不必要的副作用,因?yàn)樗鼈冊(cè)谠O(shè)計(jì)的時(shí)候并沒(méi)有考慮并發(fā)執(zhí)行。


上一章目錄下一章

Copyright ? 讀書網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)