TCP 的那些事儿(下)

2014-05-28

这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的…

TCP 的那些事儿(上)

2014-05-28

TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协…

C语言的整型溢出问题

2014-04-21

整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视。整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSS…

从LongAdder看更高效的无锁实现

2014-04-17

(感谢 @jd刘锟洋 投稿,更多文章参看他的博客:码梦为生)原文链接:《比AtomicLong还高效的LongAdder 源码解析》接触到AtomicLong的原因是在看gua…

Python修饰器的函数式编程

2014-03-20

Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。…

一个“蝇量级” C 语言协程库

2014-01-28

(感谢网友 @我的上铺叫路遥 投稿)协程(coroutine)顾名思义就是“协作的例程”(co-operative routines)。跟具有操作系统概念的线程不一样,协程是在…

分布式系统的事务处理

2014-01-20

当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。2)我们总是害怕我们的这台服务器停机,造…

函数式编程

2013-12-27

当我们说起函数式编程来说,我们会看到如下函数式编程的长相:函数式编程的三大特性:immutable data 不可变数据:像Clojure一样,默认上变量是不可变的,如果你要改…

二维码的生成细节和原理

2013-10-29

二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据…

伙伴分配器的一个极简实现

2013-10-09

(感谢网友 @我的上铺叫路遥 投稿)提起buddy system相信很多人不会陌生,它是一种经典的内存分配算法,大名鼎鼎的Linux底层的内存管理用的就是它。这里不探讨内核这么…