聊聊协程

什么是协程

协程,又称用户态线程,微软给他取名叫纤程。协程的概念早在几十年前就有了,但直到最近几年才慢慢得到广泛应用,很多的编程语言也陆续支持协程。

远程开机脚本

以前用笔记本都习惯不关机,这样在哪都能随时远程上去。现在换台式机不能那么干了,有点太浪费电。于是写了个脚本,需要用家里电脑时,随时远程开机,这样不用家里电脑一直开着,也挺方便。
代码如下:

简单的echo服务器

本文编写的是基于libGod网络库的echo服务器示例程序,服务器把从客户端收到的任何数据不加处理的直接发给客户端。

首先是获取本机地址,并监听端口,然后为每个监听的socket启动一个处理协程:

进程间传递描述符

每个进程都拥有自己独立的进程空间,这使得描述符在进程之间的传递变得有点复杂,这个属于高级进程间通信的内容,下面就来说说。顺便把 Linux 和 Windows 平台都讲讲。

Linux 下的描述符传递
Linux 系统系下,子进程会自动继承父进程已打开的描述符,实际应用中,可能父进程需要向子进程传递“后打开的描述符”,或者子进程需要向父进程传递;或者两个进程可能是无关的,显然这需要一套传递机制。

游戏多服务器架构的一点想法

把网络游戏服务器分拆成多个进程,分开部署。这种设计的好处是模块自然分离,可以单独设计。分担负荷,可以提高整个系统的承载能力。

缺点在于,网络环境并不那么可靠。跨进程通讯有一定的不可预知性。服务器间通讯往往难以架设调试环境,并很容易把事情搅成一团糨糊。而且正确高效的管理多连接,对程序员来说也是一项挑战。

C++实现的Tuple类,非常好用

C++实现的Tuple类,非常好用,新老编译器都支持。在编译器支持可变模版参数的情况下,这个Tuple支持任意多成员,不支持的情况下,支持的成员是有限的,现在只支持3个成员,需要支持跟多成员,也可以轻松扩展下。有码有真相: