task - 是否可以保存和恢复 libtask 协程?

标签 task coroutine

我希望能够将 libtask 协程挂起到磁盘,然后在不同的进程下再次恢复它们,以便它们可以从中断的地方继续。

最佳答案

这是不可能的。协程状态与正在运行的进程的执行状态、打开的文件描述符等相关。在一般情况下,这实际上是一个非常难以解决的问题,请参阅维基百科上的此页面进行讨论:

http://en.wikipedia.org/wiki/Application_checkpointing

您可以采取的方法是仔细定义协程的状态,并确定您需要存储哪些信息以重建它。然后,您可以根据该信息让协程恢复。

Dragonfly BSD 能够暂停任务并稍后恢复它们,但这是我听说过的唯一通用解决方案,除了基于 VM 镜像的系统,如 Smalltalk 和 Squeak。

关于task - 是否可以保存和恢复 libtask 协程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12849919/

相关文章:

python-3.x - future : set result from a different thread

ant - 从Gradle脚本中的build.xml导入的Ant任务自动运行

task - 将 Vec<Struct> 传递到新任务中

java - Gradle:从子项目复制 application.properties 文件

c# - 协程Wrapper没有及时执行回调

haskell - Haskell的FreeT和Coroutine类型有什么关系

java - Kotlin 的 Coroutines 与 Android 中的 Java Executor 有何不同?

C# Task.continuewith 依赖于之前的 Task.Result

python - 如何使用 celery 配置不同的工作池?

android - 链接流(在另一个流的 collect{} block 中收集一个流)