1. 概述
- 有些概念, 老是弄不清楚
- 同步异步
- 阻塞非阻塞
2. 准备
- 场景
-
角色
- client
- 发起请求
- 接受请求
- server
- 接受请求
- 执行操作
- 返回响应
- client
-
行为
- 大致是一个 C/S 模式的模型
-
3. 阻塞 & 非阻塞
-
概述
- 对 客户端 行为的描述
-
行为
-
阻塞
- client 发出请求
- client 原地等待 server 处理完
- client 接到 server 响应, 继续前进
-
非阻塞
- client 发出请求
- 当然多数时候, 要确认 server 收到了请求, 简单考虑的话, 可以先不提
- client 继续前进
- client 发出请求
-
关注点
- client 向 server 发出请求后的行为模式
-
4. 同步 & 异步
-
概述
- 对 服务端 行为的描述
-
行为
-
同步
- server 接受请求
- server 处理请求
- server 返回响应
-
异步
- server 接受请求
- server 返回响应
- 收到请求
- server 处理请求
- server 返回响应
- 处理完成
-
关注点
- server 在收到请求后的行为模式
-
其他
- server 处理完请求, client 有多重方式知道 处理完成
- client 轮询
- client 主动
- 反复询问 server 情况
- client 监听
- server 主动
- 处理完后立即通知 client
- client 轮询
- server 处理完请求, client 有多重方式知道 处理完成
-
5. 组合
-
阻塞同步
- 最常见的模型
- 最简单
- 最常见的模型
-
阻塞异步
- 有点二逼的模型
- client 明明可继续前进, 非要傻等到 server 的处理完成
- 有点二逼的模型
-
非阻塞同步
- 有点二逼的模型
- server 明明可以返回, 继续接受其他请求, 但还是在哪里阻塞
- 有点二逼的模型
-
非阻塞异步
- 常见的模型
- 最高效
- 常见的模型