此頁面包含與 Lua 中的多工處理/多執行緒/平行處理[1] 相關的連結和/或討論。
- 協調式
- 標準 Lua 協程 [2] - 輕量的協調式多工處理
- [Coco][6] (5.1) - Lua 的真 C 協程 (從任何地方讓渡)
- [tuna][7] (5.1/5.2) - 協調式 C 層級排程器,在某些方面類似 Coco。高記憶體效率。Windows 32 位元(Windows 64 位元將在近期推出)和 Linux x86/64
- [Copas][8] (5.1/5.2/5.3) - 基於協程和 LuaSocket[?][9] 的排程器,可供請求/回應伺服器使用。
- [LuaEvent][10] (5.1) - 連結到 libevent,提供 ala Copas 的協程排程器。
- [lua-ev][11] (5.1) - 連結到 libev,仍處於早期階段。
- [luasched][12] (5.1) - 協作式多執行緒,共享記憶體
- [Lumen][13] (5.1/5.2/LuaJIT) - 純 Lua 協作式多執行緒,共享記憶體,靈感來自 luasched。
- [cqueues][14] (LuaJIT, 5.2, 5.3) 使用 epoll、kqueue 和 Solaris 埠進行協程排程。沒有回呼,使其可與 C 或 Lua 中的其他事件系統互操作,因為每個 cqueues 排程器都提供可輪詢的敘述子。包括輕量級條件變數,以便快速喚醒協程並在協程之間切換。還包括非阻斷式 socket、信號處理、核心執行緒和檔案變更通知的繫結。除了 OpenSSL 以外,沒有任何依賴關係。
- [levent][15] (5.2/5.3) - 基於 libev 的 lua 並行處理函式庫,類似於 gevent。
- [Emilua fibers][16]
- 搶佔式,共用狀態
- [LuaThread][17] (5.0/5.1) - 執行緒共用相同的 Lua 狀態(同步);使用原生作業系統執行緒(搶佔式)
- 搶佔式,訊息傳遞
- [zmq.threads][19] - [ZeroMQ][20] Lua 繫結具有 [lua-llthreads][21] 的包裝器,可為 lua-llthreads 增加訊息傳遞支援。
- [Lanes][22] (5.1/5.2) - 完全分開的 Lua 狀態,每個執行緒一個,採用非同步訊息傳遞
- [LuaTask][23] (5.1) - 多個並行的、獨立的 Lua 狀態,每個執行緒一個,採用訊息傳遞
- [mqlua][24] (5.1/5.2) - [MqLua][25] - 在 POSIX 執行緒中執行多個 Lua 狀態,並使用 ZeroMQ 進行通訊。
- [LuaExec][26] (5.1, 5.2, 5.3) - 分離狀態,採用基於抽象訊號的非同步訊息傳遞,遞迴
- [cqueues.thread][27] (5.1, LuaJIT, 5.2, 5.3) - 使用 pthreads 分離狀態,每個狀態採用非阻斷式、基於協程的 I/O。類似於 N:M 執行緒,但作業系統執行緒之間沒有共用資料。
- [Effil] (5.1、5.2、5.3、LuaJIT) - 執行緒安全表 + 元表,可暫停/繼續執行緒並取消執行緒,FIFO 通道。獨立 Lua 狀態中的執行緒。
- 搶先式執行
- 協作式,訊息傳遞
- 僅在 C 端執行執行緒
- 其他
有關多個 Lua 多執行緒函式庫的比較請參閱 [Lanes]。
近期變更 · 偏好設定
編輯 · 歷程
上次編輯於 2023 年 4 月 5 日上午 1:38 GMT (差異)