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

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

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

    聶永的博客

    記錄工作/學(xué)習(xí)的點點滴滴。

    Fork/Join模式(JSR166y)手記之斐波納契數(shù)列(Fibonacci)求解測試

    在參考資料中,對斐波納契數(shù)列(Fibonacci)進(jìn)行求解來展示RecursiveTask的用法,很好。
    另外,在JSR166y演進(jìn)的過程中,其算法經(jīng)過調(diào)整,導(dǎo)致原示范代碼中存在一些問題,需要進(jìn)行些許調(diào)整。歷史遺留代碼,如下:
    Fibonacci f1 = new Fibonacci(n - 1);
    f1.fork();
    Fibonacci f2 = new Fibonacci(n - 2);
    f2.fork();

    return f2.join() + f1.join();
    但現(xiàn)在已不建議使用。真要如此執(zhí)行,會一直阻塞等待(至少我本機(jī)是如此)。查看RecursiveTask的源代碼,也發(fā)現(xiàn)示范doc中,兩個RecursiveTask類型結(jié)果相互匯聚,推薦示范為:
    Fibonacci f1 = new Fibonacci(n - 1);
    f1.fork();
    Fibonacci f2 = new Fibonacci(n - 2);

    return f2.compute() + f1.join();
    嗯,這里同時提供一個單線程版本的參考實現(xiàn),與之作為對比:

    在測試時,發(fā)現(xiàn)速度太慢,于是萌生了改進(jìn)了其算法的想法,于是一個非遞歸、單線程版本實現(xiàn)出現(xiàn)了:

    使用JUNIT 4進(jìn)行測試類:

    該貼的代碼,都貼完了,可以預(yù)測一下哪一個算法的速度排名嗎 ?嗯,貼出運行JUNIT測試輸出結(jié)果吧:
    Fork/Join 算法 ...
    1836311903
    用時 : 2203

    單線程遞歸算法 ...
    1836311903
    用時 : 1016

    單線程改進(jìn)遞增算法 ...
    1836311903
    用時 : 0
    在測試類中,把MAX設(shè)置為55或更大的數(shù)字,以上兩個算法就可能等待過長的時間(實在沒有耐心等待那么長時間),而算法三,即使設(shè)置再大,也是瞬時完成。
    上面的測試類中,把results數(shù)組以static修飾,公共共享方式,存放在常量區(qū),在速度上會比原始測試代碼讀取方面更為迅速,快了不少。
    本機(jī)的CPU雙核的效果沒有體現(xiàn)出來。權(quán)威一些的解析:
    在Java 7 生命周期內(nèi),大的(32+)多核系統(tǒng)將大量出現(xiàn),有了這個框架可以讓人們對計算密集型任務(wù)獲得相對簡單的增速方法。目前,forkjoin在如Sun Niagaras和Azuls這樣的機(jī)器上工作得最好,它們只是即將普及的并行處理器。Forkjoin在標(biāo)準(zhǔn)SMP上工作的也不錯。總體來講,少于4處理器的話你不并能獲得太多增速效果——其主要目標(biāo)是針對成打到成百處理器范圍。
    另一方面,也是任務(wù)劃分過于細(xì)小,優(yōu)勢體現(xiàn)不出來。當(dāng)然,不是所有的任務(wù)都適合Fork/Join模式,以及適合多線程,就看具體任務(wù)具體分析了。
    參考資料:

    1. JDK 7 中的 Fork/Join 模式

    posted on 2012-02-07 21:24 nieyong 閱讀(1209) 評論(0)  編輯  收藏 所屬分類: Java

    公告

    所有文章皆為原創(chuàng),若轉(zhuǎn)載請標(biāo)明出處,謝謝~

    新浪微博,歡迎關(guān)注:

    導(dǎo)航

    <2012年2月>
    2930311234
    567891011
    12131415161718
    19202122232425
    26272829123
    45678910

    統(tǒng)計

    常用鏈接

    留言簿(58)

    隨筆分類(130)

    隨筆檔案(151)

    個人收藏

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 猫咪www免费人成网站| 豆国产96在线|亚洲| 国产成人一区二区三区视频免费| 亚洲一区二区三区乱码A| 成年免费大片黄在线观看com| 又爽又高潮的BB视频免费看| 暖暖免费中文在线日本| 久久亚洲国产精品123区| 中文字幕在线视频免费| 亚洲大尺度无码无码专区| 99久久人妻精品免费一区| 亚洲国产成人精品青青草原| 毛片视频免费观看| 狼色精品人妻在线视频免费| 亚洲精品无码高潮喷水在线| 伊人久久免费视频| 亚洲乱码无人区卡1卡2卡3| 亚洲av区一区二区三| 三级毛片在线免费观看| 亚洲综合国产精品| 国内精品免费视频自在线| 日韩免费高清一级毛片| 亚洲成年人在线观看| 久久久www成人免费毛片| 美女被爆羞羞网站在免费观看 | 免费无码午夜福利片| 国产亚洲情侣一区二区无码AV| 久久精品一区二区免费看| 国产成人精品日本亚洲直接| 九月婷婷亚洲综合在线| 午夜视频在线免费观看| 亚洲另类自拍丝袜第五页| 国产亚洲精品成人AA片新蒲金| 国产91色综合久久免费分享| 亚洲AV无码片一区二区三区| 亚洲成A人片在线观看WWW| 成人五级毛片免费播放| 成全视频在线观看免费| 亚洲av永久中文无码精品综合| 亚洲人成人77777网站| 毛片在线看免费版|