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

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

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

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


          要注意的是,JDK 1.5中的Exchanger只支持2 parties,N parties時,N > 2會導(dǎo)致死鎖。JDK 1.6中,Exchanger重寫了,沒有這個問題。

          在JDK 1.5中要這樣用的話,可以把JDK 1.6中Exchanger源碼抄過來就是了。

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


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

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


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 育儿| 老河口市| 江口县| 滁州市| 益阳市| 澄城县| 团风县| 漾濞| 明星| 灯塔市| 抚顺县| 延津县| 清镇市| 新津县| 诸城市| 宁武县| 同心县| 治县。| 故城县| 华阴市| 湖口县| 噶尔县| 武穴市| 渝中区| 东丰县| 称多县| 象州县| 邹平县| 丰原市| 桑植县| 荣昌县| 墨江| 喀喇沁旗| 吉水县| 驻马店市| 九龙城区| 高邮市| 兴国县| 长海县| 鄂温| 宜宾市|