1.设计模式 创建型 5种 工厂 抽象工厂 单例 结构型 7种 代理 适配器 组合 行为型 11种 中介者 观察者 策略
简单工厂: 1.违背开闭原则 2.违背单一职责原则 抽象工厂: 1.定义创建对象的一组接口 应用场景:并不是什么时候都适合 简单对象直接创建,针对于复杂对象、批量生产对象
JSNO/XML 数据预处理 算法适配器 观察者模式 一对多
线程封装 pthread_create start stop run static void threadFunc(void) id isRunning C++头 hpp pthread_join pthread_detach 指针使用前判空 交给系统
根据用户类型 细分 通知方式 :1.给消息本身 观察者模式的推模式 2.给主题的指针或引用 拉模式
BO:线程本质上是运行一个函数 cb: function(void) 右值引用 std::bind 加 function 框架的概念 用类抽象任务 task:void process() 对于成员函数来说, 当注册给function之后,要传递过去的对象生命周期要大于回调函数执行完毕的时机。
有输入才有输出。
宏观-- 微观
代理模式
线程的封装:线程池 生产者 消费者
mvc 没有继承 非常灵活
任务队列 taskqueue 大小 临界资源 互斥锁 条件变量 notfull notempty queue 阻塞当前线程 push pop isfull ifempty 阻塞当前线程 线程、互斥锁、条件变量不能复制
头文件循环依赖 线程池退出标志位 任务本身知道自己的执行流程 二重保护 ThreadPool addTask 生产者 消费者角色 workerThread
禁止复制或赋值 C++11之前将拷贝和赋值 设为私有 c++11之后= delete
纯虚函数 protected 构造和析构
增量编译 写一段遍一段 子类调用父类的构造函数 语句块 基于完整的移动语义 匿名函数对象
生产者 消费者
序列图+类图 :完美展示程序的运行 子线程做的事 包工头再做的事
组件+模块化思维 +条件标志位 ——cb:线程池交给子线程执行的任务 线程池:OO、BO 目标驱动行为、结果为导向
网络编程: 计算机网络 七层协议(标准) 应用层:https、http、dns、ftp 表示层:加密/解密 ps 会话层:session 传输层:报文 segment tcp/udp 网络层:分组 packet 互联网细腰 路由器 数据链路层:帧 物理层: 比特
工业标准:tcp/ip 应用层 传输层 网络层 网际接口层
通信子网:网络层以下 资源子网:传输层以上
tcp协议:面向连接、可靠的、全双工 udp:无连接 建立连接(三次我搜) syn+ack 断开连接(四次挥手)
11个状态 告诉彼此的情况 为什么要三次握手? 二次不够 四次太多 tcp首部结构 跟结构体一样。