代码既是写给机器看的,也是写给别人看的。写出优美,让人阅读友好的代码,十分重要。以下是一些整洁代码的心德。

阅读全文 »

linux没有实现epoll事件驱动机制之前,我们一般选择用select或者pollIO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,selectpoll的用武之地越来越有限,风头已经被epoll占尽。

阅读全文 »

在计算机科学中,信号是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。

阅读全文 »

前方

vim是裸机linux,最顺手的编辑工具。用好vim,修改文件就会事半功倍。

跳转查看

跳到文本的最后一行:按“G”,即“shift+g”
跳到第一行的第一个字符:先按两次“g”

反应器模式(Reactor Pattern)是一种为处理服务请求并发提交到一个或者多个服务处理程序的事件设计模式。反应器模式与观察都模式相似。但观察者模式与单个事件源关联,而反应器模式则与多个事件源关联。

阅读全文 »

服务端需要管理多个客户端连接,而recv只能监视单个socket,而且还不能阻塞。这种矛盾下,人们开始寻找监视多个socket的方法。

阅读全文 »

堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。
堆排序是就地排序,辅助空间为O(1)
它是不稳定的排序方法(排序的稳定性是指如果在排序的序列中,存在前后相同的两个元素的话,排序前和排序后他们的相对位置不发生变化)。

阅读全文 »