一悲一喜

这几天,开源软件界有两件大事,一件是 Debian 创始人 Ian Murdock 自杀身亡,另一件是在锤子手机 T2 的发布会上,罗永浩宣布将门票收入捐给 OpenResty,可以说是一悲一喜。

2013年,Markdown 标记语言的设计者之一 Aaron Swartz 自杀,我以及无数的程序员们的博客书写时用的就是 Markdown; Debian 以及 Debian 的变种 Ubuntu,也是很多人使用过或正在使用的 Linux 发行版。他们的自杀前后的心理状态,我们肯定不可能去感同身受,我们可能会感叹一句,原来在黑客氛围浓厚的美国,这些著名的黑客在现实中却也遭遇着能敢于去自杀的痛苦。不管怎么样,他们在这个世界上留下了他们的足迹供后人怀念。祝 Ian Murdock 走好。

2016第一天

以前从来没有把元旦当作新一年的开始,因为觉得这是农历春节的作用。如今这个观念要做出改变了。一年的时间实在过得太快,如果把春节作为新一年的开始,发现没过多久一年又过去一半。所以,今天就应该回顾一下过去的一年,展望下新的一年了。

过去的一年里,生活上最大的变化就是结婚了。结婚本身真是一件非常简单事,简单到之前漫长的等待、纠结都好似不曾存在一样。实际上婚姻相关的主题,占据了这一年大部分的时间,说在今天回顾一下过去的一年的得失,我竟只能想到结婚这两个字。回想一下,让人更觉得在那些没有意义的事情上的纠结,实在是浪费生命。与婚姻相关的痛苦和纠结,很多经历过的人都懂,就不在博客里细说了。反而,婚后的生活,异常的平静,一切更井井有条。

人有自知之明,挺难的

这两天,金线冯唐火了,因为他的译本《飞鸟集》。

但我对这事没什么感受,因为不关心。但是却对他事后的一条反应比较感兴趣。当有读者批评他英文不过关,曲解原文意思的时候,他在微博上晒出了自己的托福成绩,说:

此事如此简单,我们比比英文和中文,如果你胜,我洗耳恭听。

雾霾感怀

过去的一周里,全国多个城市都遭受了雾霾的侵袭,北京不用说,就连远在南方的广州,都不例外。在高楼林立的广州东站旁边的某栋写字楼里,居然看不清对面的房子。

记得在小学时,跟着一位表姐,看了几本琼瑶的书。剧情到现在都已经记不清楚了,但有本书的名字却始终不曾忘记,那本书叫《烟锁重楼》。

此时此刻,用“烟锁重楼”四个字描述眼前的景观,真是别有一番滋味。

在现代城市的高楼间行走,很久都没有去怀念什么了。但是今天却想起了很多事情。

accept与epoll惊群

今天打开 OneNote,发现里面躺着一篇很久以前写的笔记,现在将它贴出来。

1. 什么叫惊群现象

首先,我们看看维基百科对惊群的定义:

The thundering herd problem occurs when a large number of processes waiting for an event are awoken when that event occurs, but only one process is able to proceed at a time. After the processes wake up, they all demand the resource and a decision must be made as to which process can continue. After the decision is made, the remaining processes are put back to sleep, only to all wake up again to request access to the resource.

This occurs repeatedly, until there are no more processes to be woken up. Because all the processes use system resources upon waking, it is more efficient if only one process was woken up at a time.

This may render the computer unusable, but it can also be used as a technique if there is no other way to decide which process should continue (for example when programming with semaphores).

简而言之,惊群现象(thundering herd)就是当多个进程和线程在同时阻塞等待同一个事件时,如果这个事件发生,会唤醒所有的进程,但最终只可能有一个进程/线程对该事件进行处理,其他进程/线程会在失败后重新休眠,这种性能浪费就是惊群。