When you wanna do several tasks simultaneously in a single program, multi-threading has been a mature choice, not only does it give you that all treads are seemingly running at the same time, it also ...
Serializing the coroutine, sending the serialized data to a different node, checkpointing, and deserializing the coroutine are possible. Then coroutine f() proceeds to return its result to Ray. And ...