<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    china-pub購(gòu)書網(wǎng)址:http://www.china-pub.com/computers/common/info.asp?id=34017

    1、總體感受
    a) 這本書主要介紹的是intel平臺(tái)下的多核程序設(shè)計(jì)技術(shù),Windows介紹較多,Linux介紹較少,Java更少。作者是Intel公司的平臺(tái)架構(gòu)師,我們知道wintel聯(lián)盟,書中的內(nèi)容如此分布也是正常。
    b) 此書讓我懂得了很多硬件方面的并行知識(shí)。
    c) 此書介紹Windows API中和并發(fā)相關(guān)的部分,很詳盡,比Jeffrey Richter的《Windows核心編成》有深度多了,也精辟多了。顯然《多核程序設(shè)計(jì)》作者屬于有經(jīng)驗(yàn)的工程師,Jeffrey Richter只是一個(gè)寫手,兩者沒(méi)有可比性。不過(guò)這方面的知識(shí)偶早已涉獵,當(dāng)作復(fù)習(xí)一遍罷了。
    d) 此書偏向底層,硬件和操作系統(tǒng)層面。更高層面的技術(shù)介紹較少。
    e) 第一次了解OpenMP技術(shù)的一些細(xì)節(jié)。以前只聽說(shuō),也沒(méi)查過(guò)任何相關(guān)資料,在此書中看到了相關(guān)部分,挺有意思的,感覺(jué)那些語(yǔ)法很有趣。Herb Sutter也是要在語(yǔ)法方面動(dòng)手。反正我在有了一個(gè)粗淺認(rèn)識(shí)之后,覺(jué)得很有意思。

    -------------------------

    2、并發(fā)流程控制
    Fence
    在Java 中對(duì)應(yīng)的是java.util.concurrent.CountDownLatch。最初接觸CountDownLatch的時(shí)候,由于其實(shí)現(xiàn)很簡(jiǎn)單, 當(dāng)時(shí)覺(jué)得是一個(gè)可有可無(wú)的工具類。但后來(lái)在不同的場(chǎng)景多次使用,發(fā)現(xiàn)很有用。在此書中再次發(fā)現(xiàn)類似的Fence,用于在共享存儲(chǔ)多處理器或者多核環(huán)境中, 確保存儲(chǔ)操作的一致性。我猜這屬于業(yè)界并發(fā)流控制的典型手段了。


    Barrier
    在Java中對(duì)應(yīng)的是java.util.concurrent.CyclicBarrier。在應(yīng)用程序中,一個(gè)場(chǎng)景就是和定時(shí)器結(jié)合使用,countDown、await、reset,做定時(shí)定量批量處理。
    我猜這也屬于業(yè)界并發(fā)流程控制的典型手段了。

    (CountDownLatch和CycliBarrier的實(shí)現(xiàn)代碼都很簡(jiǎn)單,但很有用,他們都屬于并發(fā)流程控制的典型手段)

    -------------------------

    3、非阻塞算法
    InterLocked在Java中對(duì)應(yīng)的是java.util.concurrent.atomic.xxx
    書中提到了cache行乒乓球現(xiàn)象導(dǎo)致的性能問(wèn)題,提高了非阻塞算法的復(fù)雜性問(wèn)題。

    關(guān)于性能問(wèn)題,developerworks上有一片文章,有測(cè)試數(shù)據(jù):
    《Java 理論與實(shí)踐: 流行的原子》 (http://www.ibm.com/developerworks/cn/java/j-jtp11234/index.html)
    文章中的測(cè)試數(shù)據(jù)表明,直接使用atomic在1個(gè)和2個(gè)處理器時(shí)是最好的,4個(gè)處理器以上,使用java.util.concurrent.locks.ReentrantLock性能更好。

    java.util.concurrent包,提供了很多高級(jí)的概念,隱藏了非阻塞算法帶來(lái)的復(fù)雜度,其底層框架達(dá)到了最佳性能。

    -------------------------

    4、任務(wù)分解、數(shù)據(jù)分解以及數(shù)據(jù)流分解
    此書中明確提出了這三個(gè)概念,很有用,讓我在這方面的知識(shí)概念清晰化了。

    任務(wù)分解
    Java 中的Executor,提供了任務(wù)分解的手段和模式。任務(wù)分解提交給Executor執(zhí)行。java.util.concurrent中提供了 Future,用于任務(wù)提交者和Executor之間的協(xié)調(diào)。Future是一種很好的手段,在很多涉及并發(fā)的庫(kù)都提供。例如C++網(wǎng)絡(luò)并發(fā)庫(kù)中提供了 Future,Herb Sutter要在Visual C++中引入Future。

    數(shù)據(jù)分解
    數(shù)據(jù)分解的手段很多也很常見(jiàn)。 Java中,提供了一種高級(jí)的數(shù)據(jù)分解協(xié)同模式j(luò)ava.util.concurrent.Exchanger這個(gè)類。早在Java SE 5.0時(shí),Exchanger只支持2Parties,Java SE 6.0支持n parties。偶想象過(guò)一些很酷的應(yīng)用場(chǎng)景,寫過(guò)模擬測(cè)試,但一直沒(méi)有機(jī)會(huì)用于實(shí)際開發(fā)中。

    數(shù)據(jù)流分解
    書中提到了眾多周知的producer/consumer問(wèn)題。
    其實(shí)java.util.concurrent.Exchanger類,既有數(shù)據(jù)分解,又有數(shù)據(jù)流分解,exchanger中的producer和consumer的角色會(huì)互換的,很有意思。

    -------------------------

    5、作為Java程序員的思考
    Java SE 5.0之后,提供了util.concurrent包,功能齊全,性能卓越,非常優(yōu)秀。從此書來(lái)看,業(yè)界流行的流程控制手段和并發(fā)程序設(shè)計(jì)方法一個(gè)不落。我們應(yīng)該感謝偉大的Doug Lea,他為我們帶了一個(gè)如此完美的并發(fā)庫(kù)!
    posted on 2007-04-26 07:08 溫少的日志 閱讀(3288) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
     
    主站蜘蛛池模板: 2022免费国产精品福利在线| 日本亚洲视频在线| 亚洲视频在线免费观看| 亚洲免费无码在线| 亚洲视频免费在线观看| 午夜成人免费视频| 亚洲一卡2卡三卡4卡无卡下载| 久久久久国色AV免费看图片| 亚洲天堂男人影院| 岛国片在线免费观看| 亚洲色丰满少妇高潮18p| 久久99亚洲综合精品首页| 在线人成免费视频69国产| 亚洲AV无码专区国产乱码电影| 午夜免费福利小电影| 亚洲高清美女一区二区三区| 999国内精品永久免费视频| 自拍日韩亚洲一区在线| 亚洲人成中文字幕在线观看| 亚欧免费无码aⅴ在线观看| 亚洲成a人无码亚洲成www牛牛| 亚洲国产精品13p| 久久99免费视频| 亚洲国产成人精品无码区在线秒播| 91嫩草国产在线观看免费| 朝桐光亚洲专区在线中文字幕| 亚洲国产午夜福利在线播放| 视频免费在线观看| 亚洲最大中文字幕| 国产美女被遭强高潮免费网站| eeuss在线兵区免费观看| 精品国产日韩久久亚洲| 亚洲精品动漫人成3d在线| 最近中文字幕mv免费高清电影| 日日摸夜夜添夜夜免费视频| 亚洲av无码一区二区三区乱子伦 | 国产精品极品美女免费观看| 免费A级毛片无码A∨中文字幕下载| 亚洲乱码日产精品BD在线观看| 亚洲色欲久久久综合网| 亚洲第一区精品观看|