代码既是写给机器看的,也是写给别人看的。写出优美,让人阅读友好的代码,十分重要。以下是一些整洁代码的心德。
epoll实现
发表于
更新于
在linux
没有实现epoll
事件驱动机制之前,我们一般选择用select
或者poll
等IO
多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select
和poll
的用武之地越来越有限,风头已经被epoll
占尽。
进程间通信ipc、线程间通信
发表于
更新于
进程间通信(IPC,Inter-Process Communication)
指至少两个进程或线程间传送数据或信号的一些技术或方法。
linux信号
发表于
更新于
在计算机科学中,信号是Unix
、类Unix
以及其他POSIX
兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。
python高级字符串格式化
发表于
更新于
这里记录下,python高级字符串格式化。
vim快捷键
发表于
更新于
反应器模式Reactor和Proactor
发表于
更新于
反应器模式(Reactor Pattern)是一种为处理服务请求并发提交到一个或者多个服务处理程序的事件设计模式。反应器模式与观察都模式相似。但观察者模式与单个事件源关联,而反应器模式则与多个事件源关联。
IO模型select,poll,epoll
发表于
更新于
服务端需要管理多个客户端连接,而recv
只能监视单个socket
,而且还不能阻塞。这种矛盾下,人们开始寻找监视多个socket
的方法。
虚拟文件系统
发表于
更新于
它是允许和操作系统使用不同的文件系统实现的接口。
堆与堆排序
发表于
更新于
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)
的几种常见排序方法。
堆排序是就地排序,辅助空间为O(1)
。
它是不稳定的排序方法(排序的稳定性是指如果在排序的序列中,存在前后相同的两个元素的话,排序前和排序后他们的相对位置不发生变化)。