摘要: TCP(传输控制协议) 传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。 在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的 阅读全文
posted @ 2018-06-16 20:33 joeylee97 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 《程序员自我修养》 笔记 温故而知新 平坦内存模型存在的问题 进程之间地址空间不隔离 多进程时, 内存碎片多(分页), 内存利用效率低(缓存命中率) 程序运行的地址空间不确定 分段 提高缓存命中率 读写权限隔离 提高内存利用效率(多个运行的线程可以共享一份代码段) 分页 提高内存利用率,减少内存碎片 阅读全文
posted @ 2018-06-11 20:35 joeylee97 阅读(305) 评论(0) 推荐(0) 编辑
摘要: Given n non negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpo 阅读全文
posted @ 2018-06-11 10:06 joeylee97 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 多线程服务器 编程模型 多线程的价值在于发挥多核处理器的性能,单核使用状态机是最高效的。 提高平均响应时间 TCP网络编程 本质 处理三个半事件 1. 连接的建立 2. 链接的断开 3. 消息到达 4. 消息发送完毕,对于低流量的服务不必关心 one loop per thread 好处: 1. 线 阅读全文
posted @ 2018-04-29 16:17 joeylee97 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 高效并发编程 并发编程的基本模型包括,通过消息机制来管理运行顺序的message passing, 通过互斥保护共享的shared memory。 线程同步的基本原则 1. 最低限度共享变量,考虑使用immutable对象 2. 尽量减小锁粒度 3. 互斥器和条件变量足以完成绝大多数任务,尽量使用高 阅读全文
posted @ 2018-04-29 15:02 joeylee97 阅读(2286) 评论(0) 推荐(0) 编辑
摘要: 线程安全的对象生命期管理 解决对象构造的线程安全 当我们需要动态分配对象时( 懒加载 ), 如果在多个线程中运行这一部分代码,可能出现多次初始化的问题。 单例模式 c++ 11 之后static 变量的初始化是线程安全的。可以利用静态变量来实现单例模式,解决重复初始化的问题。 std::call_o 阅读全文
posted @ 2018-04-29 14:24 joeylee97 阅读(334) 评论(0) 推荐(0) 编辑
摘要: Nagle 算法 由于TCP中包头的大小是固定的,所以在数据(Payload)大小很小的时候IP报文的有效传输率是很低的,Nagle算法就是将多个即将发送的小段的用户数据,缓存并合并成一个大段数据时,一次性一并发送出去。特别的是,只要当发送者还没有收到前一次发送TCP报文段的的ACK(即连接中还存在 阅读全文
posted @ 2018-04-26 08:45 joeylee97 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 实现TTCP (检测TCP吞吐量) 应用层协议 为了解决TCP粘包问题以及 "客户端阻塞问题" 设计的应用层协议如下: 为什么要设计应用层ACK? 因为我们测量的是应用层的流量,只有这样才能保证测出的流量是有应用层收到的而不是传输层收到的,具体一点说,TCP 的 ACK 表示对方的协议栈已经收到了你 阅读全文
posted @ 2018-04-25 19:52 joeylee97 阅读(3246) 评论(0) 推荐(0) 编辑
摘要: 我们只关心代码中的业务逻辑和底层阻塞原因 客户端代码 发送数据 接受服务端回显的数据 服务端代码 采用thread per connection 模型,每个链接分配一个线程来进行数据回显 cpp InetAddress listenAddr(3007); Acceptor acceptor(list 阅读全文
posted @ 2018-04-25 19:39 joeylee97 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 注意在成员列表中初始化的顺序并不是列表顺序 而是: 在类中声明的顺序! 这里决定的。。。 在成员初始化列表中有前后顺序依赖的时候一定要注意! 阅读全文
posted @ 2018-04-24 17:27 joeylee97 阅读(414) 评论(0) 推荐(0) 编辑