在Quasar中调度任务,而不会生成新线程

时间:2018-06-10 23:28:28

标签: java multithreading quasar

我想生成许多在特定时间间隔执行私有方法的Actors。此任务需要无限期地以时间间隔运行,直到Actor终止。

我在Java中看到的所有解决方案都涉及创建一个新线程,例如Spring TaskExecutor或使用ScheduledExecutorService。因为一个Actor已经拥有自己的Fiber,所以我认为没有理由产生一个线程,除非我的任务非常繁重。

在Elixir中,使用Process.send_after()非常简单。

使用Quasar在Java中有类似的方法吗?

1 个答案:

答案 0 :(得分:1)

光纤具有方法sleep(long millis),因此您可以轻松创建一个定期执行的光纤:

while (!end) {
    doTask();
    sleep(period);
}