Programming In Lua 第九章

Posted 小霸霸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Programming In Lua 第九章相关的知识,希望对你有一定的参考价值。

1,

2,

3,

4,

5,

6,

第6点很关键:先是调用消费者,来唤醒一个协同例程producer,协同例程producer读取一个数据x后调用send。send函数中调用yield(x),该函数将自己这个协同例程挂起,并返回给之前调用resume的函数。并且返回值的第一个是表示状态,第二个值表示传递给yield函数的x值。也就实现了将读取的x传递给消费者。并且满足消费者需要一个数据,生产者就生成一个数据。

7,

第7点很关键:p=producer()调用,产生一个协同例程赋值给p。然后调用filter(p)产生一个协同例程赋值给f。然后调用consumer(f),首先会调用receive(f),进而调用resume(f)。唤醒f协同例程后,直接调用receive(p)(这里一定要理解,f是和p想关联的。因为之前调用了filter(p)),然后唤醒p协同例程。p协同例程读取一个值,返回给receive(p),然后进行string.format进行过滤,然后调用send(x),进行挂起协同例程。最终返回给resume,再返回给consumer的receive函数。最终调用write函数将读取的数据进行输出。

8,本章的最后一个例子,下载多个文件,对整个程序的理解很有帮助,可以多看看。甚至这里面使用到了io多路复用函数select函数。

 

以上是关于Programming In Lua 第九章的主要内容,如果未能解决你的问题,请参考以下文章

第九章 MySQL中LIMIT和NOT IN案例

SPRING IN ACTION 第4版笔记-第九章Securing web applications-004-对密码加密passwordEncoder

SPRING IN ACTION 第4版笔记-第九章Securing web applications-001-SpringSecurity简介(DelegatingFilterProxyAbstr(

Programming In Lua 第一章

Programming In Lua 第三章

Programming In Lua 第四章