在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