Chinaunix首页 | 论坛 | 博客
  • 博客访问: 924866
  • 博文数量: 389
  • 博客积分: 2874
  • 博客等级: 少校
  • 技术积分: 3577
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-24 10:34
文章分类

全部博文(389)

文章存档

2020年(2)

2018年(39)

2017年(27)

2016年(3)

2015年(55)

2014年(92)

2013年(54)

2012年(53)

2011年(64)

分类: Python/Ruby

2012-03-21 16:46:39

一、coroutine机制

lua下的coroutine提供的是一种“半对称协同进程”机制,提供了两个函数来控制两个函数的执行,一个挂起,一个恢复执行。

1)resume 恢复执行函数

2)yield 挂起函数

二、数据交换

通过使用resume和yield函数的参数来实现数据交换,感觉《lua程序设计》里这部分说的比较模糊,所以这里补充一下。

第一次调用resum时,resume的参数就是协同进程函数的参数,如果函数里存在yield,则yield返回的值也是resume的参数,然后resume返回的值是yield的参数,这样就达到了数值交换的目的。

再次调用resume时,resume的传入的参数由yield返回,但是resume返回的值同第一调用resume时返回的值相同

阅读(809) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~