第二天

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首部结构 跟结构体一样。

JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。