<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ù)

    朋友

    搜索

    最新評論

    主站蜘蛛池模板: 男男AV纯肉无码免费播放无码 | 在线成人a毛片免费播放| 成年在线观看网站免费| 大学生一级特黄的免费大片视频 | 亚洲AV无码国产剧情| 亚洲精品综合久久中文字幕| 亚洲中文字幕在线第六区| 国产亚洲情侣一区二区无| 亚洲AV人无码综合在线观看| 亚洲国产精品久久人人爱| 亚洲欧洲精品成人久久曰| 国产日韩精品无码区免费专区国产| a成人毛片免费观看| 久久www免费人成看片| 日本免费电影一区| 国产亚洲精品自在久久| 亚洲精品不卡视频| 免费观看四虎精品成人| 国产精品视频白浆免费视频| 毛片视频免费观看| 91麻豆国产自产在线观看亚洲| 亚洲精品欧洲精品| 美女免费精品高清毛片在线视| 国内精品免费视频精选在线观看| 青娱乐免费视频在线观看| 亚洲第一页日韩专区| 久久精品国产亚洲AV无码麻豆| 亚洲AV日韩AV一区二区三曲 | 五月天婷婷免费视频| 久久一区二区三区免费播放| 日本午夜免费福利视频| 久久久久久a亚洲欧洲aⅴ| 亚洲欧美日韩久久精品| 四虎影视无码永久免费| 午夜寂寞在线一级观看免费| 国产亚洲精品成人a v小说| 国产精品亚洲专区在线观看| a视频免费在线观看| 日韩一品在线播放视频一品免费| 亚洲成人午夜在线| 久久久久亚洲精品无码网址色欲 |