
程序员的自我修养
文章平均质量分 77
QuitePig
这个作者很懒,什么都没留下…
展开
-
无锁队列的实现
关于无锁队列的实现,网上有很多文章,虽然本文可能和那些文章有所重复,但是我还是想以我自己的方式把这些文章中的重要的知识点串起来和大家讲一讲这个技术。下面开始正文。关于CAS等原子操作在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCH转载 2012-10-26 16:51:57 · 1456 阅读 · 0 评论 -
TCP TIME_WAIT状态(2MSL)
连接进程是通过一系列状态表示的,这些状态有:LISTEN,SYN-SENT,SYN-RECEIVED,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT和CLOSED。CLOSED表示没有连接,各个状态的意义如下: LISTEN - 侦听来自远方TCP端口的连接请求; SYN-SENT -在发送转载 2012-10-26 14:39:49 · 2545 阅读 · 0 评论 -
TCP建立连接为什么要三次握手
tcp是一个面向连接的协议,在传送数据以前,必须要首先建立一条连接。连接的建立需要经过三次握手。为什么要经过三次握手呢,每次握手双方都做了些什么?1)什么是tcp报文?tcp报文就是通过tcp协议发送的数据包,由tcp头和数据段组成。tcp头是固定的20个字节,它的格式为:16位源端口号16位目的端口号32位序号32位确认序号4位首部长度保留6位转载 2012-10-24 09:53:56 · 3897 阅读 · 0 评论 -
字符串Hash函数评估
Hash查找因为其O(1)的查找性能而著称,被对查找性能要求高的应用所广泛采用。它的基本思想是:(1) 创建一个定长的线性Hash表,一般可以初始化时指定length;(2) 设计Hash函数,将关键字key散射到Hash表中。其中hash函数设计是最为关键的,均匀分布、冲突概率小全在它;(3) 通常采用拉链方法来解决hash冲突问题,即散射到同一个hash表项的关键字,以链表形式来表转载 2012-10-07 12:21:05 · 839 阅读 · 0 评论