自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程书画的 BLOG

不积跬步,无以至千里。

  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

原创 《沉默的大多数》王小波——读后感

这本书是在 KU 热门区看到的,关于“沉默的大多数”这个词,已经听过很多年了,只是一直不知道还有本书,所以就好奇想看看,对王小波的印象也不多,只知道他是个有趣的人,还知道他是个浪漫的人,因为他给李银河写的情书开头都是:“你好呀,李银河”,这种开头一般男人是写不出来的。这是本杂文集,里面都是他发表到各种杂志和报刊上的文章,语言很是犀利,看的出是个非常聪明的人,实际上确实如此。这本书里有一段话

2018-01-22 13:40:35 3562 3

原创 skynet 单步调试方案(zbstudio remote debug)

先上效果图: skynet 调试难题skynet 的业务代码全是用 lua 写的,其实现在 lua 的调试工具已经很多了,也有很多好用的,但是由于 skynet 是多服务的,每个服务都是一个 lua 虚拟机,成百上千的 lua vm 导致现有的 lua 调试工具都没法直接使用。虽然云风提供了一个简单的调试控制台,但实在谈不上好用,基于命令行的模式对于用惯各种现代 IDE 调试的我

2018-01-05 00:07:33 5394 4

原创 lua 防御式编程辅助函数

防御式编程是提高软件质量技术的有益辅助手段。防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。以上是引用自百科的一段描述,在实际编码过程中,我们除了判断参数是否合法外,还会 assert 非法参数,以达到快速定位出错位置的目的。一些示例比如我们有一个 计算两个 number 之和的一个函数:fun

2018-01-03 21:10:18 1529

原创 skynet 某些库导致 attempt to yield across a C-call boundary 错误的问题

问题描述在使用 skynet 提供的一些库的时候,报 attempt to yield across a C-call boundary 的错误。常见的有以下这些: * datasheet * multicast * cluster * sharedata * …比如我们在某个 lua 文件内 require(“skynet.datasheet”), 在运行到这个文件时,会报

2018-01-03 16:48:23 4088

原创 lua服务执行过程中协程的挂起和重新唤醒

lua服务在执行回调函数的过程中,调用某些函数会挂起协程,比如skynet.call, skynet.ret, skynet.response等等,这些函数把协程挂起后,如何唤醒呢?本文将对所有调用coroutine.yield的API的唤醒做下分析。(比较拗口,找不到更好的表达方式了)skynet.callfunction skynet.call(addr, typename, ...)

2018-01-01 10:59:41 2535

原创 skynet lua服务callback执行过程

lua服务都是通过snlua启动的,snlua服务启动时,最终会通过skynet.start把回调函数设为skynet.dispatch_message。当有消息到达时,先调用到skynet.dispatch_message, 这里面再调到raw_dispatch_messagelocal function raw_dispatch_message(prototype, msg, sz, ses

2018-01-01 10:58:53 756

转载 skynet.call流程

本来想自己写下这个流程的,但是看到网上有人已经写了,就直接转过来吧,修正了原文中的一处错误。原文:探索skynet(四):服务之间的通信原文内容在《探索skynet(三):消息队列》中已经提到,skynet中每个服务都有自己的地址和消息队列。有了这个基础,理解服务之间的消息通信,就比较简单了。 skynet.call以最常用到的skynet.call为例,它通过调用skynet.core.send

2018-01-01 10:56:52 2051

原创 skynet.wakeup分析

官方文档: skynet.wakeup(co) 唤醒一个被 skynet.sleep 或 skynet.wait 挂起的 coroutine 。在 1.0 版中 wakeup 不保证次序,目前的版本则可以保证。唤醒流程调用skynet.wakeup(co)后,会在wakeup_session表内插入一条数据,key=co,value=true.function skynet.wakeup(

2018-01-01 10:55:20 902

原创 skynet.sleep分析

官方文档 skynet.sleep(ti) 将当前 coroutine 挂起 ti 个单位时间。一个单位是 1/100 秒。它是向框架注册一个定时器实现的。框架会在 ti 时间后,发送一个定时器消息来唤醒这个 coroutine 。这是一个阻塞 API 。它的返回值会告诉你是时间到了(返回nil),还是被 skynet.wakeup 唤醒 (返回 “BREAK”)。Codefunction s

2018-01-01 10:54:38 2039

list Control实现单元格编辑与插入Combo Box

这篇Blog的工程补充。 http://blog.csdn.net/bizhu12/article/details/6570209# 主要有一点细节作者没有提到: ListCtrl控件的属性里,View要改成Report。

2017-05-11

三消游戏的一种实现(JS/C++两个版本)

自己写的一个三消游戏, 介绍在这:http://blog.csdn.net/gneveek/article/details/50640412 因为有几个哥们要,所以就上传到这里了,省得我一直发邮件:)

2016-11-16

正则表达式必知必会-中文版.zip

本书是全球程序员公认的正则表达式最佳速成教材。作者Ben Forta是世界知名的技术作家,目前担任Adobe公司的高级技术推广专家。

2014-11-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除