在 JavaScript 中,有
const a, b = await Promise.all([task1(), task2()])
在Python中,有
a, b = await asyncio.gather(task1(), task2())
Lua 有与上面类似的东西吗?
local task1 = coroutine.create(...)
local task2 = coroutine.create(...)
local a, b = coroutine.resume_all(task1, task2) -- No such method
我就引用Lua编程:
协程类似于线程(在多线程的意义上): 执行行,有自己的堆栈,自己的局部变量,以及 它自己的指令指针;但共享全局变量并且大部分 与其他协程的任何其他内容。之间的主要区别 线程和协程是,从概念上(或字面上,在 多处理器机器),具有线程的程序运行多个线程 同时。另一方面,协程是协作的:A 带有协程的程序在任何给定时间只运行其其中一个 协程,并且这个正在运行的协程仅在以下情况下暂停其执行: 它明确要求暂停。
因此没有同时运行多个协程的功能。