Java 中最接近 threading.Event 的东西是什么(也许是成语)在 Python 中?
最佳答案
Object.wait()
Object.notify()
/Object.notifyAll()
.
或Condition.await()
和 Condition.signal()
/Condition.signalAll()
适用于 Java 5+。
编辑:因为 python 规范与我们通常等待 Java 实现的方式类似:
class Event {
Lock lock = new ReentrantLock();
Condition cond = lock.newCondition();
boolean flag;
public void doWait() throws InterruptedException {
lock.lock();
try {
while (!flag) {
cond.await();
}
} finally {
lock.unlock();
}
}
public void doWait(float seconds) throws InterruptedException {
lock.lock();
try {
while (!flag) {
cond.await((int)(seconds * 1000), TimeUnit.MILLISECONDS);
}
} finally {
lock.unlock();
}
}
public boolean isSet() {
lock.lock();
try {
return flag;
} finally {
lock.unlock();
}
}
public void set() {
lock.lock();
try {
flag = true;
cond.signalAll();
} finally {
lock.unlock();
}
}
public void clear() {
lock.lock();
try {
flag = false;
cond.signalAll();
} finally {
lock.unlock();
}
}
}
关于java - Python "Event"等同于 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1040818/