循环定时任务这样写对吗?
-
// 线程调用服务 val scheduler: ScheduledExecutorService = Executors.newScheduledThreadPool(3) // 启动循环 fun startCycleTask(){ scheduler.scheduleWithFixedDelay(task,100,200,TimeUnit.MICROSECONDS) // 指定间隔,调用之间的间隔 延时在前一次调用结束到下一次调用开始 scheduler.scheduleAtFixedRate(task,100,200,TimeUnit.MICROSECONDS) // 指定频率,两次调用的间隔 延时在上一次调用开始到下一次调用开始 } // 定时任务 private val task = object :TimerTask(){ override fun run() { timerTask() } fun timerTask(){ scheduler.submit { PluginMain.launch { /* do something */ delay(1000) // } } } }
-
你为什么要混合 java 线程 和 kotlin 协程
-
对于 你应该参考 文档里的 Java 线程生命周期管理
https://github.com/mamoe/mirai/blob/dev/mirai-console/docs/plugin/JVMPlugin.md#java-线程生命周期管理
请不要混合使用 java 线程 和 kotlin 协程
尤其是你不清楚如何管理他们的时候 -
@cssxsh 乐
-
@cssxsh 那么我要使用协程进行定时循环的任务应该怎么做呢,么么
-
launch { while (isActive) { // do something launch { // async do something } delay(10_000) } }
-
@cssxsh 感谢大佬么么
-
@cssxsh
所以我可以把一个功能已经其关联协程这样写在一个ListenerHost中吗?