2012-04-06 29 views
2

我想在java中有一個動態多方參與的障礙。我遇到了Phaser,但是這個解決方案是針對java 7的,我不能使用它。在java中有多方動態壁壘

是否有一些解決方案爲Java 6.我應該如何滿足需要有一個可變數量的服務員的障礙?

回答

1

您確實想使用Phaser。 Phaser有一個backport,您可以在Java 6中使用。 從JSR 166y backport下載它

+0

我寫了一個實現,似乎對我的情況工作正常。如果出現問題,我會使用你提到的backport。非常感謝。 – Neal 2012-04-14 15:10:42

+0

這很難寫!更難維護。有時候它很安全! – 2012-04-15 01:34:52

0

CyclicBarrier呢?

像移相說:

在功能上的CyclicBarrier和CountDownLatch但支持更靈活的使用

相似。

是否有一些功能需要在這些類中丟失?

編輯: 一些google搜索後,我沒有看到這樣的事情, 不知道你多麼複雜的問題,你應該如何同步你的所有成員的障礙,但你可以實現一些簡單的方與同步CyclicBarrier的層次結構

+0

不,問題表明可變數量的屏障上的各方,CyclicBarrier不支持和Phaser。 – Neal 2012-04-06 11:48:00

+0

哦,出於某種原因,我認爲CyclicBarrier有這個,對不起。看我的編輯。 – shem 2012-04-06 11:59:34

+0

看到您的編輯,但具體如何幫助。 :) – Neal 2012-04-10 09:05:25