此页面包含与 Lua 中的多任务/多线程/并行化[1]相关的链接和/或讨论。
- 协作式
- 标准 Lua 协程 [2] - 轻量级协作式多任务
- [Coco] (5.1) - 用于 Lua 的真正的 C 协程(从任何地方 yield)
- [tuna] (5.1/5.2) - 协作式 C 级调度器,在某些方面类似于 Coco。 高内存效率。 Win32(Win64 即将推出)和 Linux x86/64
- [Copas] (5.1/5.2/5.3) - 基于协程和 LuaSocket? 的调度器,可用于请求/响应服务器。
- [LuaEvent] (5.1) - libevent 的绑定,提供类似 Copas 的协程调度器。
- [lua-ev] (5.1) - libev 的绑定,仍处于早期阶段。
- [luasched] (5.1) - 协作式多线程,共享内存
- [Lumen] (5.1/5.2/LuaJIT) - 纯 Lua 协作式多线程,共享内存,灵感来自 luasched。
- [cqueues] (LuaJIT, 5.2, 5.3) 使用 epoll、kqueue 和 Solaris 端口的协程调度。 没有回调使其与 C 或 Lua 中的其他事件系统互操作,因为每个 cqueue 调度器都提供了一个可轮询的描述符。 包括用于快速唤醒和协程之间切换的轻量级条件变量。 还包括对非阻塞套接字、信号、内核线程和文件更改通知的绑定。 除了 OpenSSL 之外没有依赖项。
- [levent] (5.2/5.3) - 基于 libev 的 Lua 并发库,类似于 gevent。
- [Emilua 纤维]
- 抢占式,共享状态
- [LuaThread] (5.0/5.1) - 线程共享相同的 Lua 状态(同步); 使用本机操作系统线程(抢占式)
- 抢占式,消息传递
- [zmq.threads] - [ZeroMQ] Lua 绑定有一个用于 [lua-llthreads] 的包装器,为 lua-llthreads 添加消息传递支持。
- [Lanes] (5.1/5.2) - 完全独立的 Lua 状态,每个线程一个,具有异步消息传递
- [LuaTask] (5.1) - 多个并发、独立的 Lua 状态,每个线程一个,具有消息传递
- [mqlua] (5.1/5.2) - MqLua - 在 POSIX 线程中运行多个 Lua 状态,并使用 ZeroMQ 进行通信。
- [LuaExec] (5.1, 5.2, 5.3) - 分离状态,基于抽象信号进行异步消息传递,递归。
- [cqueues.thread] (5.1, LuaJIT, 5.2, 5.3) - 使用 pthreads 分离状态,每个状态使用非阻塞、基于协程的 I/O。类似于 N:M 线程,但 OS 线程之间没有共享数据。
- [Effil] (5.1, 5.2, 5.3, LuaJIT) - 线程安全表 + 元表,线程可以暂停/恢复和取消,FIFO 通道。线程在独立的 Lua 状态中。
- 抢占式
- 协作式,消息传递
- 仅在 C 端进行线程处理
- 其他
一些 Lua 多线程库的比较见 [Lanes]。
最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2023 年 4 月 5 日凌晨 1:38 GMT (差异)