2017年10月28日
摘要: 本文通过两个图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。 图1 TCP 三次握手四次挥手 图1主要包括三部分:建立连接、传输数据、断开连接。 1)建立TCP连接很简单,通过三次握手便可建立连 阅读全文
posted @ 2017-10-28 21:22 God-father 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 对于多线程访问同一变量是否需要加锁的问题,先前大家都讨论过。今天用代码验证了一下之前的猜想:32位CPU与内存的最小交换数据为4字节/次,这也是结构体要对齐4字节的原因。在物理上,CPU对于同一4字节的内存单元,不可能写2个字节的同时,又读了3字节。测试环境为:XEON 2CPU*2Windows7 阅读全文
posted @ 2017-10-28 21:09 God-father 阅读(4907) 评论(0) 推荐(0) 编辑
摘要: (shared_ptr)的引用计数本身是安全且无锁的,但对象的读写则不是,因为 shared_ptr 有两个数据成员,读写操作不能原子化。 shared_ptr 的线程安全级别和内建类型、标准库容器、std::string 一样,即: • 一个 shared_ptr 对象实体可被多个线程同时读取(文 阅读全文
posted @ 2017-10-28 21:08 God-father 阅读(683) 评论(0) 推荐(1) 编辑
摘要: 对于多线程访问同一变量是否需要加锁的问题,先前大家都讨论过。今天用代码验证了一下之前的猜想:32位CPU与内存的最小交换数据为4字节/次,这也是结构体要对齐4字节的原因。在物理上,CPU对于同一4字节的内存单元,不可能写2个字节的同时,又读了3字节。测试环境为:XEON 2CPU*2Windows7 阅读全文
posted @ 2017-10-28 20:30 God-father 阅读(1651) 评论(0) 推荐(0) 编辑