Lua协程Coroutine是什么
生活随笔
收集整理的這篇文章主要介紹了
Lua协程Coroutine是什么
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Lua協(xié)程Coroutine是什么
協(xié)程和線程不同:
- 同一時(shí)刻,一個(gè)多線程程序可以用多個(gè)線程同時(shí)執(zhí)行;而協(xié)程只能有一個(gè)在執(zhí)行
- 多線程是搶占式的;而協(xié)程是非搶占式的,只有協(xié)程顯示被掛起,才會被掛起
協(xié)程和線程的相同點(diǎn):
- 擁有獨(dú)立的棧
- 擁有獨(dú)立的局部變量
- 擁有獨(dú)立的指針
- 共享全局變量
API示例:
-
coroutine.create(func) 通過函數(shù)創(chuàng)建一個(gè)協(xié)程
返回的是一個(gè)協(xié)程類型 -
coroutine.resume(co, …) 喚醒協(xié)程co,后面的參數(shù)依次作為協(xié)程對應(yīng)函數(shù)的參數(shù)
-
coroutine.status(co) 返回協(xié)程co的狀態(tài)
-
coroutine.yield() 在協(xié)程內(nèi)部執(zhí)行,掛起當(dāng)前協(xié)程
-
coroutine.running() 獲取當(dāng)前處于running狀態(tài)的協(xié)程
-
coroutine.wrap() 創(chuàng)建一個(gè)協(xié)程,但是返回的是函數(shù)類型
總結(jié)
以上是生活随笔為你收集整理的Lua协程Coroutine是什么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS16.4关闭验证,多Bug的iOS
- 下一篇: CocosStudio的节点如何使用自定