一般來(lái)說(shuō),Exchanger都是一個(gè)Consumer,一個(gè)producer,在適當(dāng)?shù)臅r(shí)候互相交換,這樣可以避免鎖。

          我想到Exchanger N parties的一種用法。如下:

          最初N個(gè)都是producer,達(dá)到一定條件之后,進(jìn)行交換。根據(jù)交換的結(jié)果重新確定角色,決定自己是consumer還是producer。

          這樣做的結(jié)果是,最初所有都是producer,之后一部分轉(zhuǎn)變成consumer。并且由于consumer以及producer的速度不一樣,而能夠自動(dòng)適應(yīng)調(diào)整。


          要注意的是,JDK 1.5中的Exchanger只支持2 parties,N parties時(shí),N > 2會(huì)導(dǎo)致死鎖。JDK 1.6中,Exchanger重寫(xiě)了,沒(méi)有這個(gè)問(wèn)題。

          在JDK 1.5中要這樣用的話,可以把JDK 1.6中Exchanger源碼抄過(guò)來(lái)就是了。

          溫少 2006-11-12 22:30 發(fā)表評(píng)論


          文章來(lái)源:http://www.cnblogs.com/jobs/archive/2006/11/12/558626.html
          posted on 2006-11-20 02:08 溫少的日志 閱讀(177) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 霍城县| 福建省| 馆陶县| 襄樊市| 平山县| 海门市| 渑池县| 托里县| 滦南县| 迁安市| 正镶白旗| 额尔古纳市| 林芝县| 威远县| 黄梅县| 宿松县| 阿拉尔市| 玉溪市| 阜阳市| 罗平县| 安徽省| 镇巴县| 永泰县| 班戈县| 乐清市| 白水县| 巴林左旗| 平武县| 塔城市| 金坛市| 来凤县| 宜州市| 周至县| 科尔| 明光市| 海安县| 白城市| 介休市| 崇礼县| 花莲县| 天水市|