java - Akka调度程序: How akka scheduler work?

标签 java multithreading akka scheduled-tasks

我将探索Akka Scheduler。根据我的假设,调度程序在另一个线程的特定时间内运行计划任务。根据documentation ,它们在调度程序中使用 Runnable 对象。这还不清楚,为什么它们使用 Runnable 对象并且没有在 runnable 上调用 start() ,新的线程堆栈不会产生。或者 Scheduler 没有创建一个单独的线程来运行计划任务?

akka 调度程序在幕后是如何工作的?

最佳答案

当我使用Akka Scheduler时,我尝试研究源代码以获得更多知识 - https://github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/actor/Scheduler.scala

如您所见,Akka Scheduler 使用 ExecutorContect(ForkJoinPool 下的包装器)作为隐式参数来调用新的 Runnable code> 并通过 接收器向其他参与者发送消息!通过利用即发即忘模式来发送消息

理解整体情况的另一个重要类是FiniteDuration(它允许设置延迟时间)、Cancellable(它允许取消计划操作的执行) ,它们在大多数与调度过程相关的方法中使用(例如scheduleOnce,我用它来实现参与者之间的时间同步)

关于java - Akka调度程序: How akka scheduler work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39031805/

相关文章:

java - Akka 性能问题

java - 同步访问 int 数组中的特定索引

java - 在指定数量的元素之间打印一组条件

java - spring boot 文件上传错误

java - 试图反转存储在 Java 数组中的图像

c# - 如何编写正确的静态方法 - 多线程安全

java - 依次执行每个 SwingWorker 类

scala - Akka消息限制

java - 如何通过模拟其中的一种或多种方法来测试 Akka Actor 的功能

java - 将添加的字符串返回到