主頁 > 知識(shí)庫 > Lua之協(xié)同程序coroutine代碼實(shí)例

Lua之協(xié)同程序coroutine代碼實(shí)例

熱門標(biāo)簽:冀州市地圖標(biāo)注 個(gè)人怎么在地圖標(biāo)注需要的店鋪 新岸線智能電銷機(jī)器人 百度地圖標(biāo)注早餐區(qū)域 武漢外呼防封系統(tǒng)多少錢 地圖標(biāo)注大廈 漳州智云呼電話機(jī)器人 怎么去除地圖標(biāo)注 清朝地圖標(biāo)注哈爾濱
do
	--create coroutine table
	--coroutine state: suspended, running, dead, normal
	--when create the coroutine, the status is suspended, After calling it, the status is dead
	--get the coroutine status by the way coroutine.status
	local coA = 0;
	local coB = 0;

	function createCoroutineA()

		coA = coroutine.create(
										function()
											--for i = 0, 10 do
												print("coA: ", 0);
												print("coB status: ", coroutine.status(coB)); --normal status
												print("coA status: ", coroutine.status(coA));
												print("coA coroutine next status");
												--coroutine.yield();--the current coroutine is suspended
											--end
										end
									);
		print("From coA to resume coB");
	end


	function createCoroutineB()

		coB = coroutine.create(
										function()
											--for i = 0, 10 do
												print("coB: ", 0);
												print("coA status: ", coroutine.status(coA));
												coroutine.resume(coA); --when resume coA, the coB will suspended, calling coB ,the coA status is
												--suspended and dead, this time will continue to execute the next code
												print("coB status: ", coroutine.status(coB));
												print("coB coroutine next status");
												--coroutine.yield();
											--end
										end
									);
		print("From coB to resume coA");
	end

	--display the coA and coB status
	createCoroutineA();
	print(coroutine.status(coA));

	createCoroutineB();
	print(coroutine.status(coB));

	coroutine.resume(coB);
	print(coroutine.resume(coB)); --if the coroutine is dead ,the resume will resume false, and can't resume the dead coroutine
	--print("coA status: ", coroutine.status(coA));
	--print("coB status: ", coroutine.status(coB));
end

注:
resume得到返回值,
如果有對應(yīng)的yield在wait resume,那么yield的參數(shù)作為resum的返回值,第一個(gè)返回值表示coroutine沒有錯(cuò)誤,后面的返回值個(gè)數(shù)及其值視yeild參數(shù)而定。
如果沒有yield在wait,那么返回值是對應(yīng)函數(shù)的返回值,:true,* * *

do
	--create coroutine table
	--coroutine state: suspended, running, dead, normal
	--when create the coroutine, the status is suspended, After calling it, the status is dead
	--get the coroutine status by the way coroutine.status
	local coA = 0;
	local coB = 0;

	function createCoroutineA()

		coA = coroutine.create(
										function(paramA, paramB)
											--for i = 0, 10 do
												print("coA: ", 0);
												coroutine.yield(paramA, paramB);--the current coroutine is suspended
											--end
											return 100, 200;
										end
									);
		print("From coA to resume coB");
	end


	function createCoroutineB()

		coB = coroutine.create(
										function()
											--for i = 0, 10 do
												print("coB: ", 0);
												print("coA status: ", coroutine.status(coA));
												coroutine.resume(coA); --when resume coA, the coB will suspended, calling coB ,the coA status is
												--suspended and dead, this time will continue to execute the next code
												print("coB status: ", coroutine.status(coB));
												print("coB coroutine next status");
												--coroutine.yield();
											--end
										end
									);
		print("From coB to resume coA");
	end
	createCoroutineA();
	--if not yield is waiting ,the return values that the main function return as the results of the resume
	--or the return as the yield params
	print( coroutine.resume(coA, 10, 20));--OutPut:true, 10, 20



end

您可能感興趣的文章:
  • Lua協(xié)程(coroutine)程序運(yùn)行分析
  • Lua的協(xié)程(coroutine)簡介
  • 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的簡介及優(yōu)缺點(diǎn)

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua之協(xié)同程序coroutine代碼實(shí)例》,本文關(guān)鍵詞  Lua,之,協(xié)同,程序,coroutine,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua之協(xié)同程序coroutine代碼實(shí)例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua之協(xié)同程序coroutine代碼實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章