最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lua的協(xié)程(coroutine)簡介

 更新時間:2015年04月23日 10:31:19   投稿:junjie  
這篇文章主要介紹了Lua的協(xié)程(coroutine)簡介,本文講解了coroutine的創(chuàng)建、協(xié)程的三種狀態(tài)和yield函數(shù)的配合使用等內(nèi)容,需要的朋友可以參考下

協(xié)程和多線程下的線程類似:有自己的堆棧,自己的局部變量,有自己的指令指針,但是和其他協(xié)程程序共享全局變量等信息。線程和協(xié)程的主要不同在于:多處理器的情況下,概念上來說多線程是同時運(yùn)行多個線程,而協(xié)程是通過協(xié)作來完成,任何時刻只有一個協(xié)程程序在運(yùn)行。并且這個在運(yùn)行的協(xié)程只有明確被要求掛起時才會被掛起

你可以使用coroutine.create來創(chuàng)建協(xié)程:

復(fù)制代碼 代碼如下:

co = coroutine.create(function ()
     print("hi")
end)

協(xié)程有三種狀態(tài):掛起,運(yùn)行,停止。創(chuàng)建后是掛起狀態(tài),即不自動運(yùn)行。status函數(shù)可以查看當(dāng)前狀態(tài)。協(xié)程真正強(qiáng)大的地方在于他可以通過yield函數(shù)將一段正在運(yùn)行的代碼掛起。

lua的resume-yield可以互相交換數(shù)據(jù)

如果沒有對應(yīng)的yield,傳遞給resume的額外參數(shù)將作為參數(shù)傳遞給協(xié)程主函數(shù):

復(fù)制代碼 代碼如下:

co = coroutine.create(function (a, b, c)
     print("co", a, b, c)
end)
coroutine.resume(co, 1, 2, 3)

如果沒有錯誤的話,resume將返回true和yield的參數(shù):

復(fù)制代碼 代碼如下:

co = coroutine.create(function (a, b)
     coroutine.yield(a+b, a-b)
end)
print(coroutine.resume(co, 3, 8))

同樣地,yield也將返回由對應(yīng)的resume傳遞而來的參數(shù):

復(fù)制代碼 代碼如下:

co = coroutine.create (function ()
print("co", coroutine.yield())
end)
coroutine.resume(co)
coroutine.resume(co, 4, 5)

最后,協(xié)程主函數(shù)返回值將作為與之對應(yīng)的resume的返回值(第一個參數(shù)是true)。

復(fù)制代碼 代碼如下:

co = coroutine.create(function ()
return 6, 7
end)
print(coroutine.resume(co))

(完)

相關(guān)文章

  • Lua中if語句嵌套的使用教程

    Lua中if語句嵌套的使用教程

    這篇文章主要介紹了Lua中if語句嵌套的使用教程,是Lua入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實例

    Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實例

    這篇文章主要介紹了Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實例,本文給出了加法、減法、乘法、除法、相反數(shù)、取模等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • lua+love2d制作的2048游戲

    lua+love2d制作的2048游戲

    前面給大家分享的是一個超級簡單版的使用lua實現(xiàn)的2048小游戲的代碼,今天我們加上love2d游戲引擎,制作PC版的2048游戲。小伙伴們仔細(xì)讀讀本文吧。
    2015-03-03
  • Lua中實現(xiàn)StringBuffer功能

    Lua中實現(xiàn)StringBuffer功能

    這篇文章主要介紹了Lua中實現(xiàn)StringBuffer功能,本文給出了實現(xiàn)代碼和調(diào)用代碼,需要的朋友可以參考下
    2014-11-11
  • Lua的迭代器使用中應(yīng)該避免的問題和技巧

    Lua的迭代器使用中應(yīng)該避免的問題和技巧

    這篇文章主要介紹了Lua的迭代器使用中應(yīng)該避免的問題和技巧,本文介紹了避免創(chuàng)建閉合函數(shù)、利用恒定狀態(tài)創(chuàng)造更多變量、不需要for循環(huán)的迭代器等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua判斷變量是否為數(shù)字、字符串是否可以轉(zhuǎn)換為數(shù)字等

    Lua判斷變量是否為數(shù)字、字符串是否可以轉(zhuǎn)換為數(shù)字等

    這篇文章主要介紹了Lua判斷變量是否為數(shù)字、字符串是否可以轉(zhuǎn)換為數(shù)字等,本文講解了Lua 判斷是字符還是數(shù)字的方法、Lua判斷數(shù)字的方法、判斷可否轉(zhuǎn)換為數(shù)字的方法、判斷并且準(zhǔn)備一個初值的方法,需要的朋友可以參考下
    2015-04-04
  • Lua教程(二十二):userdata

    Lua教程(二十二):userdata

    這篇文章主要介紹了Lua教程(二十二):userdata,這里我們通過一個簡單完整的示例來學(xué)習(xí)一下Lua中userdata的使用方式,需要的朋友可以參考下
    2015-04-04
  • Lua中的函數(shù)寫法簡明示例

    Lua中的函數(shù)寫法簡明示例

    這篇文章主要介紹了Lua中的函數(shù)寫法簡明示例,本文是一篇個人學(xué)習(xí)筆記,簡單的記錄了Lua函數(shù)的寫法,需要的朋友可以參考下
    2015-04-04
  • 詳解Lua中repeat...until循環(huán)語句的使用方法

    詳解Lua中repeat...until循環(huán)語句的使用方法

    這篇文章主要介紹了詳解Lua中repeat...until循環(huán)語句的使用方法,需要的朋友可以參考下
    2015-05-05
  • Lua利用cjson讀寫json示例分享

    Lua利用cjson讀寫json示例分享

    本文結(jié)合本人的實際使用經(jīng)驗和代碼示例,介紹如何在Lua中對json進(jìn)行encode和decode,需要的朋友可以參考下
    2014-11-11

最新評論

巍山| 安顺市| 嘉鱼县| 奈曼旗| 友谊县| 南投市| 波密县| 色达县| 澄迈县| 南木林县| 山东省| 八宿县| 都匀市| 阳西县| 从化市| 宁明县| 滦平县| 赤城县| 望谟县| 沭阳县| 台中县| 鄄城县| 股票| 灵山县| 乌兰浩特市| 格尔木市| 桂阳县| 游戏| 洛宁县| 贺兰县| 友谊县| 衡东县| 曲水县| 顺义区| 遵义市| 大厂| 黔江区| 祥云县| 尉犁县| 汽车| 方山县|