学习云风的skynet
摘要:研究了一下云风大神的skynet大神的技术博客写得跟他名字一样飘逸,说实话单看博客我完全不知所云。所以我只好看代码了。其实看了代码再回头看客博还是看得懂的。果然代码才是程序员的通用语言啊skynet是什么?按我的理解应该算是一个底层的消息通信框架。其实就是一个RPC的系统。"所谓 RPC 调用,就是一个远程对象加一个方法名,加上若干参数。通过序列化方法,打包成一个数据包,查询到远程对象所在的服务地址,发送过去即可。"skynet用来做什么?我猜测他应该是做游戏的gate服务器。认证的过程就可以看作一次RPC举例来说,如果 Client 发起登陆验证请求,那么由给这个 Cli
阅读全文
设计一个用户级线程库
摘要:无意中受libtask启发看到getcontext这函数,一下子学得我应该能自己写一个用户级线程库了.以前做个课程设计时写嵌入式操作系统内核,也写过进程调用的东西.看到getcontext函数后,我又想练练手了.getcontext把最难搞的保存上下文信息弄好了。若是自己写必须用汇编,还必须了解对应硬件体系结构的东西有几个难点要处理:1.栈大小不够时,如何自动增长?2.是抢占式的还是协同式的?采用不可剥夺,协同方式进行线程切换。因为在用户级上采用不可剥夺效率会更高。而且用户应该知道更合理的时机进行切换。提供task_yield函数栈增长的方向要注意,应该是向下的.而数组的增长方向是向上的.线程
阅读全文