Quelle est la chose la plus proche de Java (peut-être un idiome) à threading.Event en Python?Python "Event" équivalent en Java?
5
A
Répondre
7
Object.wait()
Object.notify()
/Object.notifyAll()
.
ou Condition.await()
et Condition.signal()
/Condition.signalAll()
pour Java 5+.
Edit: La spécification python est similaire la façon dont nous attendons généralement une implémentation Java ressemblerait à ceci:
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();
}
}
}
0
A related thread. Il y a un commentaire sur la réponse acceptée qui suggère un Semaphore ou un Latch. Pas la même sémantique que l'implémentation ci-dessus, mais pratique.
Questions connexes
- 1. Remplacer en Python- * équivalent?
- 2. Java Framework Event Processing
- 3. Équivalent DataTable en Java
- 4. STXXL équivalent en Java
- 5. Java Event Binding
- 6. équivalent Java de mappage de fonction en Python
- 7. python struct.pack équivalent en C++
- 8. Java Map équivalent en C#
- 9. Java équivalent d'une fonctionnalité Python -> set (string)
- 10. Équivalent en Python de memory_get_usage() de PHP?
- 11. Existe-t-il un équivalent d'itertools de Python pour Java?
- 12. Python équivalent de Jstack?
- 13. C# Java HashMap équivalent
- 14. 'Amis' équivalent pour Java?
- 15. Java équivalent à
- 16. Java équivalent à pyftpdlib?
- 17. java équivalent de swfobject
- 18. Java équivalent à WPF
- 19. Python $ OUTPUT_RECORD_SEPARATOR et équivalent $ INPUT_RECORD_SEPARATOR
- 20. Java équivalent à .NET System.Net.ServicePointManager
- 21. C++ équivalent de Java ByteBuffer?
- 22. Java équivalent du registre int?
- 23. équivalent de NotImplementedError pour les champs en Python
- 24. Groovy équivalent à l'instruction exec de Python?
- 25. PHP équivalent pour un décorateur python?
- 26. C++ équivalent aux doctests de Python?
- 27. Haskell équivalent de "Construct" de Python
- 28. Existe-t-il un équivalent C# à File.separator en Java?
- 29. .NET Framework équivalent pour imghdr de Python
- 30. C# équivalent du mot-clé Java 'implémente'?
Je me suis retrouvé avec: http://github.com/shikhar/sshj/tree/master/src/main/java/net/schmizz/concurrent/ – shikhar