Executor 可以在单个线程上运行多个任务吗?
显然,任务执行不能同时发生在只运行一个物理内核的情况下,但是有没有办法等待或让步,以便其他提交的任务可以运行?
如果没有等待,那么通常如何确定另一个任务何时运行?
是的。
不适用于当前的实现。
不。
;)
考虑 SingleThreadExecutor 上的文档(http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Executors.html#newSingleThreadExecutor()),并在 StackOverflow 上使用 SingleThreadExecutor 在任务之间等待。
您可以在线程之间实现自己的线程共享锁,并在多线程执行程序上运行它们......但是如果您希望其他人的实现这样做,那么据我所知,您不走运。