Threadpool ist zu Executor wie Polling ist?
-
11-09-2019 - |
Frage
Java Executor ist (soweit ich es verstehe) eine Abstraktion über das Threadpool-Konzept -. Etwas, das akzeptieren und ausführen (execute) Aufgaben
Ich suche eine ähnliche Ausnahme für das Polling-Konzept. Ich muss kontinuierlich abzufragen (dequeue) Elemente aus einer bestimmten Queue (die nicht implementiert BlockingQueue
), führen sie und schlafen, und wiederholen Sie das alles bis zum Abschalten.
Gibt es eine fertige Abstraktion oder soll ich schreibe etwas auf meinem eigenen?
(Vorschläge eines besseren Titel sind willkommen)
Lösung
Polling ist einfach:
Thread t = new Thread(new Runnable() {
public void run() {
try {
while (!t.isInterrupted()) {
Object item;
while ((item = queue.take()) == null) {//does not block
synchronized (lock) { lock.wait(1000L) } //spin on a lock
}
//item is not null
handle(item);
}
} catch (InterruptedException e) { }
}
});
t.start();
Vielleicht müssen Sie Ihre Frage neu zu formulieren, wie ich genau bin nicht ganz sicher, was Sie versuchen zu tun?
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow