在Python中,最接近threading.Event的Java(可能是一个成语)是什么?Python中的“事件”等效于Java?
5
A
回答
7
Object.wait()
Object.notify()
/Object.notifyAll()
。
或Condition.await()
和Condition.signal()
/Condition.signalAll()
适用于Java 5+。
编辑:因为蟒蛇规格类似于我们平时怎么等待的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();
}
}
}
+8
请不要建议wait()和notify()。有人可能会使用它们。 – 2009-06-24 20:37:53
+1
谢谢,我将与java.util.concurrent.Condition一起去 – shikhar 2009-06-24 20:47:26
0
一个related thread。对接受的答案有一个评论,建议Semaphore或Latch。与上述实现不同的语义,但方便。
相关问题
- 1. WPF等效于Control.CursorChanged事件
- 2. KeyPress事件等效于WPF
- 3. 等效于Scala中的LINQ to事件
- 4. 等效于Delphi中的WebBrowser.Navigated事件?
- 5. 等效于Python中的createDataPartition
- 6. 等效于Java中的memcmp()?
- 7. 等效于Java的
- 8. 等效于Java的
- 9. 等效于Java拓扑套件和Python中的Jena TBD
- 10. C#中的等效事件
- 11. Worklow Foundation(.NET)等效于Python,Java,C++吗?
- 12. roxygen2等效于python
- 13. cout.precision()等效于python
- 14. JRE等效于Python
- 15. Yacc等效于Java
- 16. java等效于nsdate
- 17. #ifdef等效于Java?
- 18. DebugBreak等效于Java?
- 19. arc4random等效于Java?
- 20. doesNotRecognizeSelector等效于Java
- 21. Exceldna等效于Java
- 22. Java - catch PC关闭事件或等效
- 23. Golang等效于Python的NotImplementedException
- 24. 等效于Python的Object.create()
- 25. Python等效于Ruby的#each_cons?
- 26. PHP等效于Python的repr()
- 27. Python的os.execvp等效于PHP
- 28. PHP等效于Python的`urljoin`
- 29. 等效于Java的C++库?
- 30. 升压等效于Windows事件
我结束了:http://github.com/shikhar/sshj/tree/master/src/main/java/net/schmizz/concurrent/ – shikhar 2010-03-08 21:21:42