濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Lua的協(xié)程(coroutine)簡(jiǎn)介

Lua的協(xié)程(coroutine)簡(jiǎn)介

熱門(mén)標(biāo)簽:個(gè)人怎么在地圖標(biāo)注需要的店鋪 百度地圖標(biāo)注早餐區(qū)域 新岸線(xiàn)智能電銷(xiāo)機(jī)器人 清朝地圖標(biāo)注哈爾濱 武漢外呼防封系統(tǒng)多少錢(qián) 地圖標(biāo)注大廈 怎么去除地圖標(biāo)注 冀州市地圖標(biāo)注 漳州智云呼電話(huà)機(jī)器人

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

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

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

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

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

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

如果沒(méi)有對(duì)應(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)

如果沒(méi)有錯(cuò)誤的話(huà),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也將返回由對(duì)應(yīng)的resume傳遞而來(lái)的參數(shù):

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

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

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

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

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

(完)

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

標(biāo)簽:天門(mén) 天門(mén) 儋州 德宏 臺(tái)灣 宣城 濰坊 金昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua的協(xié)程(coroutine)簡(jiǎn)介》,本文關(guān)鍵詞  Lua,的,協(xié)程,coroutine,簡(jiǎn)介,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua的協(xié)程(coroutine)簡(jiǎn)介》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Lua的協(xié)程(coroutine)簡(jiǎn)介的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    双江| 内乡县| 江津市| 康平县| 将乐县| 平塘县| 凭祥市| 忻城县| 游戏| 淳化县| 姚安县| 栖霞市| 嘉荫县| 和硕县| 若尔盖县| 尉氏县| 武强县| 始兴县| 浑源县| 天门市| 星座| 孙吴县| 武穴市| 东方市| 城步| 乌拉特后旗| 扶风县| 彰化县| 高平市| 新宾| 安仁县| 淮阳县| 桦川县| 屏东县| 正镶白旗| 海淀区| 白水县| 儋州市| 宜兰市| 萝北县| 肥城市|