国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Lua - Lua之協同程序coroutine代碼實例

Lua之協同程序coroutine代碼實例

2020-04-24 11:19腳本之家 Lua

這篇文章主要介紹了Lua之協同程序coroutine代碼實例,本文給出的代碼示例較為復雜,需要對Lua協同程序有一定的了解方能看懂,需要的朋友可以參考下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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得到返回值,
如果有對應的yield在wait resume,那么yield的參數作為resum的返回值,第一個返回值表示coroutine沒有錯誤,后面的返回值個數及其值視yeild參數而定。
如果沒有yield在wait,那么返回值是對應函數的返回值,:true,* * *

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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

 

延伸 · 閱讀

精彩推薦
  • LuaLua教程(二):基礎知識、類型與值介紹

    Lua教程(二):基礎知識、類型與值介紹

    這篇文章主要介紹了Lua教程(二):基礎知識、類型與值介紹,本文講解了Hello World程序、代碼規范、全局變量、類型與值等內容,需要的朋友可以參考下 ...

    腳本之家5922020-04-28
  • LuaLua和C語言的交互詳解

    Lua和C語言的交互詳解

    這篇文章主要介紹了Lua和C語言的交互詳解,Lua和C語言通過棧完成交互,本文結合代碼實例詳細講解了交互的方法,需要的朋友可以參考下 ...

    果凍想3702020-04-14
  • LuaLua中的元方法__newindex詳解

    Lua中的元方法__newindex詳解

    這篇文章主要介紹了Lua中的元方法__newindex詳解,本文講解了查詢與更新、監控賦值、通過table給另一個table賦值等內容,需要的朋友可以參考下 ...

    笨木頭8872020-04-09
  • LuaLua中table庫函數方法介紹

    Lua中table庫函數方法介紹

    這篇文章主要介紹了Lua中table庫函數方法介紹,本文講解了concat、insert、maxn、remove、sort、foreachi等方法,需要的朋友可以參考下 ...

    腳本之家2502020-04-17
  • LuaLua中計算、執行字符串中Lua代碼的方法

    Lua中計算、執行字符串中Lua代碼的方法

    這篇文章主要介紹了Lua中計算、執行字符串中Lua代碼的方法,類似JavaScript中eval函數的功能,在Lua中也可以實現,需要的朋友可以參考下 ...

    腳本之家6322020-04-30
  • LuaLua實現__add方法重載示例

    Lua實現__add方法重載示例

    這篇文章主要介紹了Lua實現__add方法重載示例,本文直接給出實現代碼,需要的朋友可以參考下 ...

    腳本之家7452020-04-24
  • Lua深入探究Lua中的解析表達式

    深入探究Lua中的解析表達式

    這篇文章主要介紹了深入探究Lua中的解析表達式,對于其語法部分的說明和示例都超詳細,極力推薦此文!需要的朋友可以參考下 ...

    腳本之家3542020-05-05
  • LuaLua簡介、編譯安裝教程及變量等語法介紹

    Lua簡介、編譯安裝教程及變量等語法介紹

    這篇文章主要介紹了Lua簡介、編譯安裝教程及變量等語法介紹,本文同時講解了lua注釋語法、Lua命令行方式等內容,需要的朋友可以參考下 ...

    junjie3632020-04-14
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 美国理论 | 色婷婷综合网 | 亚洲精品久久久久久久久久久 | 精品一区二区三 | 懂色av一区二区三区免费观看 | 亚洲精品国产剧情久久9191 | 免费成人av网站 | 成人免费一区二区三区视频网站 | av网站免费观看 | 亚洲一区二区在线 | 亚洲成人激情在线观看 | 高清中文字幕 | 成人精品影院 | 欧美极品视频 | 亚洲网站在线 | 另类在线 | 久久亚洲一区二区三区明星换脸 | 一区二区三区无码高清视频 | 国产亚洲精品久久19p | 视频一区二区国产 | 久久国| 日韩欧美在线一区 | 国产精品毛片久久久久久久 | 亚洲97 | 欧洲在线一区 | 中文字幕国产一区二区 | 色综合久久88色综合天天 | 免费大片黄在线观看 | 精品国产一区二区三区性色av | 日韩国产在线观看 | 中文字幕日韩一区二区不卡 | 亚洲精品久久久久久久久久久久久 | 国产成人精品免费 | 国产成年人电影在线观看 | 国产精品久久久91 | 日本丶国产丶欧美色综合 | 自拍偷拍视频网站 | 一本色道精品久久一区二区三区 | 黄网免费看 | 国产精品视屏 | 桃乃木香奈在线 |