中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

lua 協程

發布時間:2020-07-27 09:39:34 來源:網絡 閱讀:368 作者:bosswanghai 欄目:開發技術

-- coroutine api: create, resume, yield, wrap. running, status

-- coroutine status: suspend, running, normal, dead


local stop = function()

    return coroutine.yield(7, 9)

end


local co = coroutine.create(

    function(a, b)

        print("co-body 1: ", a, b)

        local m1, m2 = coroutine.yield(1, 3, 5)

        print("co-body 2: ", m1, m2)

        stop()


        return "haha"

    end

)


print("type of coroutine: ", type(co))

print("status of coroutine after creating: ", coroutine.status(co))

print("main-body 1: ", coroutine.resume(co, 11, 13))

print("main-body 2: ", coroutine.resume(co, 15, 16))

print("main-body 3: ", coroutine.resume(co, 17))

print("status of coroutine after running: ", coroutine.status(co))

print("main-body 4: ", coroutine.resume(co))


---------------------執行結果-------------------

type of coroutine: thread

status of coroutine after creating: suspended

co-body 1: 11 13

main-body 1: true 1 3 5

co-body 2: 15 16

main-body 2: true 7 9

main-body 3: true haha

status of coroutine after running: dead

main-body 4: false cannot resume dead coroutine

--------------------------------------------------------

coroutine.create(function(args) ... end):創建一個協程,不運行。通過type可以看到協程本質上是一個線程。創建后,處于掛起狀態。

resume運行一個協程,yield掛起一個協程。 resume和yield是協作運行,是協程的精髓。resume將參數傳遞給yield,作為yield返回值。 yield的參數,作為resume的返回值。當resume首次運行的時候,其參數是作為create里面函數的參數進行傳遞的。

resume是作為保護模式運行的,即當協程內發生錯誤的時候,程序不會abort,而是會返回false和錯誤信息。eg:resume一個已經掛掉的協程,其返回值信息見main-body 4。

wrap和resume不同的是,wrap在執行的時候,返回格式不是bool+返回值,而直接是返回值。當發生錯誤的時候,直接assert。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石嘴山市| 柘荣县| 乌拉特后旗| 冷水江市| 水富县| 广河县| 贞丰县| 西宁市| 金堂县| 永胜县| 汪清县| 宁蒗| 封丘县| 宁阳县| 饶河县| 平昌县| 郯城县| 仲巴县| 大连市| 乐昌市| 玛纳斯县| 安吉县| 龙门县| 子长县| 凤阳县| 余干县| 梁平县| 蕲春县| 福安市| 石城县| 海宁市| 伊春市| 布尔津县| 宕昌县| 潼南县| 内乡县| 普陀区| 长阳| 德庆县| 东辽县| 乡城县|