我想知道为什么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中的循环是什么? –
哦哇...如果有人会倒下,至少请告诉我为什么请。 –