1. 程式人生 > >Lua基礎 coroutine —— Lua的多執行緒程式設計

Lua基礎 coroutine —— Lua的多執行緒程式設計

permutations 函式使用了一個Lua中的常規模式,將在函式中去resume一個對應的coroutine進行封裝。Lua對這種模式提供了一個函式coroutine.wap 。跟create 一樣,wrap 建立一個新的coroutine ,但是並不返回給coroutine,而是返回一個函式,呼叫這個函式,對應的coroutine就被喚醒去執行。跟原來的resume 不同的是,該函式不會返回errcode作為第一個返回值,一旦有error發生,就退出了(類似C語言的assert)。使用wrap, permutations可以如下實現: