最新国产好看的视频,伊人天堂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é)程的主要不同在于:多處理器的情況下,概念上來說多線程是同時運行多個線程,而協(xié)程是通過協(xié)作來完成,任何時刻只有一個協(xié)程程序在運行。并且這個在運行的協(xié)程只有明確被要求掛起時才會被掛起

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

復制代碼 代碼如下:

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

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

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

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

(完)

相關文章

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

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

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

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

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

    lua+love2d制作的2048游戲

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

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

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

    Lua的迭代器使用中應該避免的問題和技巧

    這篇文章主要介紹了Lua的迭代器使用中應該避免的問題和技巧,本文介紹了避免創(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ù)字的方法、判斷并且準備一個初值的方法,需要的朋友可以參考下
    2015-04-04
  • Lua教程(二十二):userdata

    Lua教程(二十二):userdata

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

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

    這篇文章主要介紹了Lua中的函數(shù)寫法簡明示例,本文是一篇個人學習筆記,簡單的記錄了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進行encode和decode,需要的朋友可以參考下
    2014-11-11

最新評論

米易县| 伊宁市| 大兴区| 东乡族自治县| 香河县| 上犹县| 新密市| 绥阳县| 宁蒗| 陈巴尔虎旗| 临沂市| 五常市| 海伦市| 乐东| 田东县| 白城市| 手机| 扎囊县| 建阳市| 盘山县| 广河县| 齐河县| 华池县| 咸宁市| 清河县| 周宁县| 德江县| 苏尼特左旗| 抚顺市| 凤冈县| 玉田县| 诸城市| 张家口市| 新丰县| 社旗县| 拉孜县| 宽甸| 泗水县| 蒙阴县| 广水市| 琼结县|