切换给定线程的任务

时间:2016-11-25 20:31:56

标签: java multithreading

我正在尝试使用红黑树构建调度程序。 树将具有准备执行的所有可运行任务。我打算编写自己的schedule函数,它将树中的一个任务分配给四个工作线程中的一个。每个线程都会定期访问调度程序,以查看是否必须继续执行相同的任务或切换到新任务。 现在,我如何创建一个线程来暂停某个特定任务并为其分配一个新任务。 暂停的任务返回到树并等待其他一些线程继续执行。

因为,简单性假设我没有任何变量/数据来存储停止的任务。

我见过的所有资源,直到使用java执行器服务或只是为线程分配一个任务。所以,我需要一些帮助...

2 个答案:

答案 0 :(得分:0)

你只需要编写你的“任务”来完成一大堆工作,return就可以多次调用它们,每次都可以在上次停止的地方进行调用。

我知道您要求主动中断任务,但这是无稽之谈,因为正在运行的程序将具有活动堆栈。没有办法将该堆栈重新分配给另一个线程。线程可以说是堆栈。

因此,在Java中实现此目的的唯一方法是编写返回的任务,每次都有效地将堆栈弹回到起始位置。只有在这种情况下,您才能拥有一个从队列中选择这些可重入任务的线程池,并可以互换地调用它们。

答案 1 :(得分:-1)

使用石英,你不需要翻转,夸脱为你做所有,只使用。