摘要: 为什么要引入弱表? 我们都知道,lua具有自动内存管理,我们只管创建对象,无需删除对象,对于不再需要的对象只需要简单置为nil, lua会自动删除那些被认为是垃圾的数据;问题就在于,什么对象才是垃圾对象呢?有时候,程序员很清楚的知道某个对象 是垃圾,而lua却无法发现; 比如下面的例子: t = {};-- 使用一个table作为t的key值key1 = {na... 阅读全文
posted @ 2017-10-31 16:31 Mr.R123 阅读(2965) 评论(0) 推荐(1) 编辑
摘要: 接上一篇分析《skynet服务之launcher》,本篇我们继续来分析一下lua中的协程如何与服务有机结合的,关于lua中协程的解释参见本文《lua中协程的理解》; 上一篇分析到,当一个lua服务收到消息后,在lua层,最终会执行到raw_dispatch_message函数,代码如下: local function raw_dispatch_message(prototype... 阅读全文
posted @ 2017-10-31 15:41 Mr.R123 阅读(993) 评论(0) 推荐(0) 编辑
摘要: 最近在研究云风的skynet服务端框架程序,里面服务的回调代码中用到协程,这里仔细研究一下; 一、什么是协程? (1)线程:我们知道C中线程就是一个执行序列,我们在程序中创建多线程时,在单核心CPU状态下,一个时刻其实只有一个线程在执行, 在某个时间片内执行的是那个线程对程序员来说是不确定,程序员可以指定线程的优先级,但是真正的线程调度是由CPU调度来决定的; (2)协程:Lua中的... 阅读全文
posted @ 2017-10-31 10:53 Mr.R123 阅读(491) 评论(0) 推荐(1) 编辑