5

Executor 可以在单个线程上运行多个任务吗?

显然,任务执行不能同时发生在只运行一个物理内核的情况下,但是有没有办法等待或让步,以便其他提交的任务可以运行?

如果没有等待,那么通常如何确定另一个任务何时运行?

4

1 回答 1

3

是的。

不适用于当前的实现。

不。

;)

考虑 SingleThreadExecutor 上的文档(http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Executors.html#newSingleThreadExecutor()),并在 StackOverflow 上使用 SingleThreadExecutor 在任务之间等待。

您可以在线程之间实现自己的线程共享锁,并在多线程执行程序上运行它们......但是如果您希望其他人的实现这样做,那么据我所知,您不走运。

于 2013-08-20T18:48:14.180 回答