Lua学习笔记 协程

-- 协程的创建--------------------
function func(  )
    print(123);
end
-- 1.   coroutine.create( function )
co1 = coroutine.create( func );
print(type(co1));--thread
-- 2.   coroutine.wrap( function )
co2 = coroutine.wrap( func );
print(type(co2));--function

-- 协程的运行---------------------
-- 1.   使用create创建的协程调用方法
coroutine.resume( co1 );
-- 2.   使用wrap创建的协程的调用方法
co2();--返回的是函数

-- 协程的挂起---------------------
function func(  )
    local x = 1;
    while true do
        print(x);
        x = x + 1;
        coroutine.yield(x);
    end
end
-- yield()传入的参数会调用的时候返回出去。默认会返回一个调用是否成功的Boolean值。之后才是传入yield的值。
-- 调用一次就执行一次。wrap同。
co1 = coroutine.create( func );
isOk,value = coroutine.resume( co1 );--1
print(isOk,value);--true  2
isOk,value = coroutine.resume( co1 );--2
print(isOk,value);--true  3

co2 = coroutine.wrap( func )
print(co2());--2(不会返回调用情况)
-- 协程的状态----------------------------
-- api :coroutine.status( 协程对象 )
-- 3种状态 dead,suspended,running。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值