• Lua 协程和线程区别


     

    协程就是协程,不是线程。

    CPU执行单位是线程,不是什么协程。

    协程,是同步执行,不是并行,只是切了一个上下文了,为你保存原来的上下文而已。

    切到第二个协程时,原来的协程处于挂起状态。

    这个特指lua的协程。

    Unity的协程也是这么回事。

    lua协程例子:

    local function run(data)
    print("co-body", 1, data.a)
    print("co-body", 2, data.a)
    print("co-body", 3, data.a)
    coroutine.yield()
    print("co-body", 4, data.a)
    print("co-body", 5, data.a)
    coroutine.yield()
    end

    local co = coroutine.create(run)

    local data = {a=1}
    coroutine.resume(co, data)

    for i=1,5 do
    print("main", i)
    end
    coroutine.resume(co, data)

    运行结果:

    co-body 1 1

    co-body 2 1

    co-body 3 1

    main 1

    main 2

    main 3

    main 4

    main 5

    co-body 4 1

    co-body 5 1

  • 相关阅读:
    electron中使用vue.js
    大三上学期学期总结
    小程序 弹窗的提示文字中添加链接
    03月14日总结
    03月16日总结
    03月10日总结
    03月11日总结
    03月19日总结
    03月17日总结
    03月15日总结
  • 原文地址:https://www.cnblogs.com/xingchong/p/10322779.html
Copyright © 2020-2023  润新知