lua协程
lua里面协程最大好处,是把异步过程,当作同步处理 协程是这样推导出来的: 一个例程,用来生成一个无穷序列,另一个例程,处理这个序列中的每一项。如果用传统的调用返回机制,这个没有办法。这时候,我们就可以设想让这两个例程协作:生成例程没生成一个,就转移到处理例程中去,处理完了以后,再转移到生成例程。这就是协程。从中可以看出,协程是那种可以多次进入多次退出的例程,每次挂起时保留与之相关的执行上下文(execution contex),下次重入将自动恢复。
? 协程和线城的区别: 协程其实和线程的最大区别在于:协程采用的主动让出控制权的方式,因而协程中的的指令顺序是可以预计的;相反线程由于采用的是抢占式,导致线程的执行顺序不可知,因此存在同步的问题
协程的用途最明显的地方是在某些嵌入式脚本语境中。比如网络游戏的服务端,采用lua脚本来实现任务的编写功能,当脚本需要访问某个异步的功能时,典型的方式是采用回调的方法:当异步完成是,回调脚本的一个已知的函数。这儿就给脚本的编写带来了复杂度。你可能想,如果程序执行到异步点时,跳回,当异步完成后,再回到跳回点继续执行。协程就能很好的实现着一想法。 ? http://blog.csdn.net/soloist/archive/2005/03/24/329381.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |