1. 首页
  2. 编程语言
  3. 其他
  4. Lua中的协同程序探究

Lua中的协同程序探究

上传者: 2021-06-25 07:19:36上传 PDF文件 83.60 KB 热度 19次

都知道多线程吧?协同程序就和这线程差不多,但是又有比较明显的区别。多个协同程序在任意时刻只能执行一个,虽然线程在某种意义上也是这样,但这不是一样的概念。创建协同程序很简单,咋一看,其实和线程没差别~协同的程序的操作都在coroutine里,create函数的参数就是协同程序要执行的函数,就这么运行代码是没有效果的。协同程序的四种状态分别为:挂起、运行、死亡、正常。而第三次执行resume之后,反而没有任何输出,此时的状态才真正切换到死亡状态。又所以,当for循环第二次执行时,协同程序被挂起,需要等待再一次resume时,for循环才能真正执行完毕。其实resume函数是有返回值的。

用户评论