我想编写一个能够处理Runnables的线程池。这些可运行对象的执行时间是不可预测的,但响应度应该尽可能高。为了实现这一目标,我想监视是否有需要很长时间才能执行的 Runnables。这些 Runnable 被认为对于响应性不如其他 Runnable 重要,因此,如果有这样的 Runnable,我希望能够暂停它们,以便在线程上执行另一个更短的 Runnable,在此之前和之后执行更高级的 Runnable恢复更持久的 Runnable 的执行。 是否可以暂停 Runnable,并将其当前状态保存在 Java 中,以便我可以实现此目的?
最佳答案
我会让操作系统担心线程调度...它会比你能够做得更好(它比更高级别的程序更了解正在发生的事情)
这是来自开源项目(非常流行的 OpenFire 项目)的任务引擎的一个很好的示例
该引擎将允许您安排具有各种延迟的任务以及用于执行长时间运行的任务的其他控件。在内部,它使用 ExecutorService
和一个可用线程池,您的不同任务将在这些线程上执行。
关于java - 暂停执行 Runnable 和/或将其移动到另一个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27826123/