在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. 等效於Scala中的LINQ to事件
- 3. 等效於Python中的createDataPartition
- 4. 等效於Java中的memcmp()?
- 5. 等效於Java的
- 6. 等效於Java拓撲套件和Python中的Jena TBD
- 7. Worklow Foundation(.NET)等效於Python,Java,C++嗎?
- 8. JRE等效於Python
- 9. cout.precision()等效於python
- 10. roxygen2等效於python
- 11. Exceldna等效於Java
- 12. Yacc等效於Java
- 13. Java - catch PC關閉事件或等效
- 14. 等效於Python的Object.create()
- 15. Python的os.execvp等效於PHP
- 16. Python等效於Ruby的#each_cons?
- 17. PHP等效於Python的repr()
- 18. Golang等效於Python的NotImplementedException
- 19. 升壓等效於Windows事件
- 20. 跨平臺等效於Windows事件
- 21. 在Java中等效的python導入?
- 22. 等效於Python中R的源()
- 23. Python中的urllib等效於.net
- 24. Python IDLE等效於R中的CTRL-R
- 25. 等效於Python中的BASH_XTRACEFD重定向
- 26. BufferedReader.readNext()用於Java中ObjectInputStream的等效
- 27. 等效於來自PHP中的Java
- 28. Swift等效於Java中的Enum.ordinal()
- 29. Python等效於echo -e?
- 30. curl -u等效於python
我結束了:http://github.com/shikhar/sshj/tree/master/src/main/java/net/schmizz/concurrent/ – shikhar 2010-03-08 21:21:42