我要研究Akka Scheduler
。根據我的假設,調度程序在另一個線程的特定時間內運行計劃任務。根據documentation,他們在調度程序中使用Runnable
對象。這個不清楚,爲什麼他們使用Runnable
對象而沒有調用start()
就可以運行,新的線程棧不能生成。或者Scheduler
不會爲運行計劃任務創建分隔線程?Akka調度程序:akka調度程序如何工作?
akka
調度程序如何工作?
我要研究Akka Scheduler
。根據我的假設,調度程序在另一個線程的特定時間內運行計劃任務。根據documentation,他們在調度程序中使用Runnable
對象。這個不清楚,爲什麼他們使用Runnable
對象而沒有調用start()
就可以運行,新的線程棧不能生成。或者Scheduler
不會爲運行計劃任務創建分隔線程?Akka調度程序:akka調度程序如何工作?
akka
調度程序如何工作?
上有Runnable
沒有start()
。您正在混合Thread
和Runnable
。 在引擎蓋下,Scheduler
使用Dispatcher
,可以將其作爲一個ThreadPool
頂部的阿卡圖層進行簡化。爲了執行你的任務,akka會將你的任務(Runnable
)提交給這個池,那麼這個池將有一個他的Thread
來調用任務的run()
方法。
,當我用Akka Scheduler
,我想研究源代碼,獲取更多的知識 - https://github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/actor/Scheduler.scala
正如你所看到的,Akka Scheduler
使用ExecutorContect
(包裝ForkJoinPool
下)的隱含參數onvoke新Runnable
併發送消息給其他演員通過receiver ! message
通過利用fire and forget
模式。
理解全貌另一個重要的類是FiniteDuration
(它允許設立延遲時間),Cancellable
(它允許取消預定操作的執行),他們使用的是與調度流程相關的大部分方法(例如scheduleOnce,我用它來演員之間的時間同步)
它說明了情況嗎? – pacman
請仔細閱讀我的問題,我想知道,調度程序如何工作以及如何在schduler中管理線程 –
它基於作業存儲桶計劃程序。這兩個鏈接爲您提供了更多與示例的內部鏈接。這就是爲什麼我包含這些鏈接。 –