Lua:并行运行多个协程

问题描述 投票:0回答:1

在 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 coroutine
1个回答
0
投票

我就引用Lua编程

协程类似于线程(在多线程的意义上): 执行行,有自己的堆栈,自己的局部变量,以及 它自己的指令指针;但共享全局变量并且大部分 与其他协程的任何其他内容。之间的主要区别 线程和协程是,从概念上(或字面上,在 多处理器机器),具有线程的程序运行多个线程 同时。另一方面,协程是协作的:A 带有协程的程序在任何给定时间只运行其其中一个 协程,并且这个正在运行的协程仅在以下情况下暂停其执行: 它明确要求暂停。

因此没有同时运行多个协程的功能。

© www.soinside.com 2019 - 2024. All rights reserved.