麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > 綜合 > 正文

Lua的協程(coroutine)簡介

2024-07-21 23:04:40
字體:
來源:轉載
供稿:網友

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

你可以使用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))

(完)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 2021狠狠操| 在线成人一区 | 第四色成人网 | 精品久久久久久国产 | 视频一区二区三区视频 | 91精品中文字幕 | 大胆在线日本aⅴ免费视频 美国黄色毛片女人性生活片 | 久久靖品 | 成人福利在线观看 | 久久精品re| 国产精品久久久免费 | 日韩激情一区 | 久久国产精品久久精品国产演员表 | 国产成人在线观看网站 | 日本在线播放一区二区三区 | 四虎久草 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 极色品影院 | 毛片在线看免费 | 毛片免费观看完整版 | 亚洲精品 在线播放 | 色播久久 | 久久久久久久一区二区三区 | 艹男人的日日夜夜 | 免费午夜视频在线观看 | 精品在线免费播放 | 免费看欧美一级特黄a毛片 九色com | 久久sp| 4p嗯啊巨肉寝室调教男男视频 | 成人三区四区 | av在线播放电影 | 国产精品自拍99 | 日韩黄色成人 | 一级毛片手机在线观看 | 欧美成人国产va精品日本一级 | 国产69久久精品成人看 | 亚洲日本韩国在线观看 | 久久久久久久久国产精品 | 嗯哈~不行好大h双性 | 一夜新娘第三季免费观看 | 日本欧美一区二区三区在线播 |