婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Lua的協程(coroutine)簡介

Lua的協程(coroutine)簡介

熱門標簽:個人怎么在地圖標注需要的店鋪 百度地圖標注早餐區域 新岸線智能電銷機器人 清朝地圖標注哈爾濱 武漢外呼防封系統多少錢 地圖標注大廈 怎么去除地圖標注 冀州市地圖標注 漳州智云呼電話機器人

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

你可以使用coroutine.create來創建協程:

復制代碼 代碼如下:

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

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

lua的resume-yield可以互相交換數據

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

(完)

您可能感興趣的文章:
  • Lua協程(coroutine)程序運行分析
  • Lua之協同程序coroutine代碼實例
  • Lua協同程序(COROUTINE)運行步驟分解
  • Lua協同程序函數coroutine使用實例
  • Lua編程示例(七):協同程序基礎邏輯
  • 舉例詳解Lua中的協同程序編程
  • Lua中的協同程序詳解
  • Lua中的協同程序之resume-yield間的數據返回研究
  • Lua中的協同程序探究
  • Lua協同程序coroutine的簡介及優缺點

標簽:天門 天門 儋州 德宏 臺灣 宣城 濰坊 金昌

巨人網絡通訊聲明:本文標題《Lua的協程(coroutine)簡介》,本文關鍵詞  Lua,的,協程,coroutine,簡介,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua的協程(coroutine)簡介》相關的同類信息!
  • 本頁收集關于Lua的協程(coroutine)簡介的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 安达市| 辽阳市| 额济纳旗| 赣州市| 东兰县| 南乐县| 平和县| 孟村| 绍兴县| 连江县| 文成县| 禄丰县| 洛宁县| 富平县| 铜陵市| 卓尼县| 徐水县| 德格县| 湖北省| 满洲里市| 正定县| 上杭县| 万全县| 二手房| 岳阳市| 沙坪坝区| 保康县| 东兴市| 东方市| 黄梅县| 弋阳县| 怀来县| 孙吴县| 府谷县| 茌平县| 长葛市| 墨竹工卡县| 凌源市| 乌兰察布市| 台前县| 甘泉县|