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)

War es hilfreich?

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
scroll top