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

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

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

    Herb Sutter的觀點

    Herb Sutter最近的一篇文章中如是說:“90年代,我們到處跟人叫講,什么是對象,什么是虛函數(shù),現(xiàn)在我們到處跟人說,什么是主動對象,什么是Future”,他還說,結構編程、面向?qū)ο螅F(xiàn)在該輪到并發(fā)和并行了。

    記得在去年,Herb Sutter就寫文章預示并發(fā)時代的到來,主要是因為CPU的主頻將不再會有以前那樣的增長速度,而將迎來多核時代。程序?qū)⑹强坎l(fā)來提高運行效率。



    JDK 1.5 Concurrent包

    在傳統(tǒng)的多線程程序中,經(jīng)常會有:
    創(chuàng)建線程
    wait\notify
    重新發(fā)明輪子,例如BlockingQueue、Lock、Semaphore這樣的基本工具類。

    不恰當?shù)某橄螅瑫е码y以承受的復雜度,代碼錯誤多,常犯死鎖、lost notify之類,也很容易導致性能低下。我也有過這樣的經(jīng)歷,失敗的教訓刻骨銘心。

    JDK 1.5 util.concurrent包提供了一系列工具類,其中一些類的使用,代表一些觀念的轉(zhuǎn)變,更好的抽象,優(yōu)雅的設計模式,會使多線程程序具有良好的結構。

    使 用Excector、ScheduleExecutorService、Future、BlockingQueue等類搭建起來的程序,會使得多線程程序 有很清晰明了的結構。其中的差別,似乎就象以前“非結構化程序設計”到“結構化程序設計”那樣的轉(zhuǎn)變,現(xiàn)在我們使用Future等設計模式,起到了同樣好 的效果。

    結構化程序設計,使用if/else、while、do...while、for、switch等結構,把程序組織的清晰易懂,更容易掌握,更少出錯。
    Executor、Future、Concurrent Collection等工具類、模式,使得并發(fā)程序結構清晰化/模式化,更容易掌握,更少出錯,也更高效。

    隨著多核CPU的普及,摩爾定律逐步失效,并發(fā)程序設計將會是程序員要求掌握的基本技巧,就如同現(xiàn)在程序員要求掌握面向?qū)ο笠粯印?br>
    有幾個文檔值得一看的:

    javaone的幻燈片
    http://developers.sun.com/learning/javaoneonline/2005/coreplatform/TS-3423.pdf
    http://developers.sun.com/learning/javaoneonline/2005/coreplatform/TS-5807.pdf

    Doug Lea的文章
    http://gee.cs.oswego.edu/dl/papers/aqs.pdf

    上面的文檔只能給你一個介紹,最好的辦法還是通讀一遍JDK 1.5 utilconcurrent包的源碼,然后在實踐中,改變觀念,積累經(jīng)驗。


    并發(fā)和網(wǎng)絡編程

    網(wǎng) 絡中,存在中心服務器,不同機器的交互,并發(fā)和異步是常見行為。網(wǎng)絡中的服務器,需要相應大量的并發(fā),這種并發(fā)通常會是極端的并發(fā),操作系統(tǒng)提供一些特別 的API,例如select模型,poll,windows的完成端口等等。JDK在1.4之后支持nio,主要也是針對大并發(fā)的支持。

    C++的框架ACE,提供了跨平臺的線程、進程、Future等API,并且提供了Reactor、Proactor等框架,使得能夠容易編寫跨平臺的并發(fā)網(wǎng)絡服務器。

    ACE框架的一個思想就是,使用ACE和模式消除復雜性。這一點和JDK 1.5 concurrent包提供的高級設計模式類的意圖是一致的。

    在《C++網(wǎng)絡編程》卷1和卷2中講述了一些模式,例如Half Sync/Aysnc vs Leader/Follow模式。這是ACE開發(fā)過程中的一些研究成果,我們查找ACE相關資料時,會發(fā)現(xiàn)一些關于并發(fā)方面的論文。ACE也提供了Future。

    我才運用ACE作了一些簡單的應用,了解還不夠深入,不過覺得JDK concurrent包在并發(fā)設計模式方面,比ACE走到更遠。


    今天,你使用Future了嗎?






    溫少 2006-11-10 03:23 發(fā)表評論


    文章來源:http://www.cnblogs.com/jobs/archive/2006/11/10/556063.html
    posted on 2006-11-20 02:08 溫少的日志 閱讀(483) 評論(1)  編輯  收藏
    Comments
    • # re: [導入]關于并發(fā)程序設計 (一)
      天天看海
      Posted @ 2007-08-17 13:55
      喜歡研究JAVA多線程的朋友可以加入QQ群34237757  回復  更多評論   

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


    網(wǎng)站導航:
     
     
    主站蜘蛛池模板: 亚洲一级毛片免费看| 久久无码av亚洲精品色午夜 | 中文字幕亚洲免费无线观看日本 | 精品特级一级毛片免费观看| 亚洲一区二区三区国产精华液| 亚洲制服丝袜中文字幕| 亚洲导航深夜福利| 亚洲一区二区三区在线网站| 亚洲国产中文在线二区三区免| 亚洲AV无码乱码在线观看代蜜桃| 亚洲丰满熟女一区二区v| 中文字幕 亚洲 有码 在线| 亚洲偷自拍另类图片二区| 色窝窝亚洲AV网在线观看| 美女黄频a美女大全免费皮| 一区二区三区精品高清视频免费在线播放| 羞羞漫画在线成人漫画阅读免费| 一个人看的免费高清视频日本| 久久久久久av无码免费看大片| 久久免费国产精品一区二区| 91福利免费视频| 日韩一区二区a片免费观看| 日韩视频在线免费| 亚洲日本va午夜中文字幕久久| 中文字幕人成人乱码亚洲电影 | 最好免费观看韩国+日本| 免费看国产曰批40分钟| 亚洲日韩中文字幕日韩在线| 亚洲成AV人片在线观看无码 | 国产亚洲精品美女久久久| 亚洲精品视频观看| 中文字幕乱码亚洲无线三区| 四虎永久在线精品免费一区二区 | 亚洲av无码专区在线观看亚| 性生大片视频免费观看一级| 免费成人高清在线视频| 日本阿v免费费视频完整版| 国产一级做a爱免费视频| 日本亚洲欧洲免费天堂午夜看片女人员 | 精品女同一区二区三区免费站| 日韩中文字幕免费|