我想知道爲什麼utils.concurrent
有這麼複雜的源代碼。 這是我爲CountDownLatch
提出的一些代碼,經過測試後,我期待在源代碼中找到類似的東西,但不是,它是非常複雜的。爲什麼CountDownLatch源代碼如此複雜?
我的實施有錯嗎?
public class CountDown {
private int count;
private Object lock;
public CountDown(int count)
{
lock = new Object();
this.count = count;
}
//Just waits until it is notified by CountDown. Keeps waiting if not 0.
public void await() throws InterruptedException
{
synchronized (lock) {
while(count != 0)
{
lock.wait();
}
}
}
//Decreases the count and notifies for await's lock.
public void countDown()
{
synchronized (lock) {
this.count--;
lock.notify();
}
}
}
而這裏的源代碼:Source Code CountDownLatch
你的實現沒有那麼多的功能。如果您添加所有缺少的功能,您的實施將看起來幾乎相同。 –
功能如?有非常複雜的方法,例如,私人類Sync中的循環是什麼? –
哦哇...如果有人會倒下,至少請告訴我爲什麼請。 –