2

Java 的 Executor 是(据我所知)对 ThreadPool 概念的抽象——可以接受和执行(执行)任务的东西。

我正在为 Polling 概念寻找类似的例外。我需要不断地从特定队列(未实现 BlockingQueue)中轮询(出列)项目,执行它们并休眠,然后重复所有这些直到关闭。

有现成的抽象还是我应该自己写一些东西?

(欢迎提出更好的标题)

4

1 回答 1

2

投票很简单:

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();

也许您需要重新表述您的问题,因为我不太确定您到底要做什么?

于 2009-07-07T06:43:07.733 回答