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

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

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

    有條件的同步方法

    ??? 在做多線程程序時我們可能要對某段代碼的同步是有條件的,只有對滿足同一條件的請求才排隊訪問,對與不滿足這樣條件的請求可以并發(fā)訪問,在處理這樣的需求的時候我們可以容易的想到,對于這個特定的條件做一個抽象,讓它作為我們同步鎖。下面的代碼可以說明這個處理過程:
    ?1?
    ?2?//?定義鎖
    ?3?private?Map?locks?=?new?HashMap();
    ?4?private?Object?getLock(Object?key)?{
    ?5?????synchronized?(locks)?{
    ?6?????????if?(!locks.containsKey(key))?{
    ?7?????????????locks.put(key,?new?Object());
    ?8?????????}
    ?9?????????return?locks.get(key);
    10?????}
    11?}
    12?
    13?//?需要同步的代碼
    14?synchronized?(getLock(id))?{
    15?????//?TODO
    16?}
    17?
    18?

    posted on 2006-10-09 14:27 Xueping Yang 閱讀(1262) 評論(6)  編輯  收藏 所屬分類: 技術(shù)文章

    評論

    # re: 有條件的同步方法 2006-10-09 16:28 GHawk

    Java 5開始內(nèi)置的java.util.concurrent.locks包里面有pthread-like的Lock和Condition,很方便。  回復(fù)  更多評論   

    # re: 有條件的同步方法 2006-10-09 17:54 Xueping Yang

    @GHawk
    對于我的這個需求來說,上面的代碼可能已經(jīng)是最簡單的呢,要是用concurrent的話必須要tiger啦。  回復(fù)  更多評論   

    # re: 有條件的同步方法 2006-10-09 19:41 stoneshao

    呵呵,有意思,畢竟現(xiàn)在的應(yīng)用服務(wù)器都是在jdk1.4下,不能用tiger  回復(fù)  更多評論   

    # re: 有條件的同步方法 2006-10-09 19:42 stoneshao

    但是有一個專門做線程同步的包:concurrent.jar,沒有仔細(xì)研究它的實現(xiàn),應(yīng)該有類似的實現(xiàn)  回復(fù)  更多評論   

    # re: 有條件的同步方法 2006-10-09 22:36 Alex

    上面的所有方法都是同步的,什么時候不同步,代碼里體現(xiàn)了么?
    synchronized (getLock(id)) {
    15 // TODO
    16 }
    是同步的,它調(diào)用的getLock(id)里面也都是同步的,除非在方法
    synchronized (locks) {}的外面再加一個其他條件的代碼才能算是吧?

    還是你省略了這些代碼?  回復(fù)  更多評論   

    # re: 有條件的同步方法 2006-10-10 10:10 GHawk

    @stoneshao
    util.concurrent 的確有一個backport可以在1.4jvm上使用
    http://dcl.mathcs.emory.edu/util/backport-util-concurrent

    自己實現(xiàn)多線程的東西還是比較容易出現(xiàn)問題的,debug和性能分析都可能花費大量的時間,個人感覺還是用現(xiàn)有的庫更容易一些。  回復(fù)  更多評論   


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


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    <2006年10月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    技術(shù)

    朋友

    搜索

    最新評論

    主站蜘蛛池模板: 一级毛片免费观看| a高清免费毛片久久| 91成人免费观看网站| 久久亚洲私人国产精品| 在线看片免费人成视久网| 亚洲综合视频在线| 巨波霸乳在线永久免费视频 | 巨胸喷奶水视频www免费视频| 亚洲国产成人乱码精品女人久久久不卡| 亚洲AV无码一区二区乱子仑| 免费永久看黄在线观看app| 一区二区三区免费高清视频| 亚洲精品美女久久777777| 免费A级毛片无码A∨| 亚洲AV成人一区二区三区在线看| 全免费a级毛片免费看不卡| 激情吃奶吻胸免费视频xxxx| 国产亚洲午夜高清国产拍精品| 无码国产精品一区二区免费16| 亚洲一区二区三区不卡在线播放| 成人免费毛片内射美女APP| 久久精品国产亚洲av品善| 亚洲综合色婷婷七月丁香| 7x7x7x免费在线观看| 日韩国产欧美亚洲v片| 亚洲无线观看国产精品| 国产成人精品免费视频网页大全| 亚洲乱亚洲乱妇24p| 中文字幕精品亚洲无线码二区| 最近免费中文字幕大全免费 | 怡红院免费的全部视频| 亚洲成在人线电影天堂色| 国产精品四虎在线观看免费 | 久久久久久久91精品免费观看 | 99在线在线视频免费视频观看 | 四虎影视永久免费观看| 99久久免费中文字幕精品| 蜜臀亚洲AV无码精品国产午夜.| 精品国产综合成人亚洲区| 四虎国产精品免费久久| 一级特黄录像免费播放肥|