梗概
- 通常需要一个控制中心来管理
- 记录每个线程的各种状态
- 当其中一个线程出错时,能够依据这个线程的信息来单独处理错误
- 记录每个线程的各种状态
实例:
1. 以并行发送多个http请求为例
要求:
- 所有的http请求都成功才能进行下一步
- 有一个http请求失败,就单独重传
1.1. 控制中心
我们可以设计这样一个控制中心:
declare interface reqController{
reqList: REQ_INFO[],//每个reqInfo对应一个http请求
reqAbort: boolean//是否中止整个http应用
}
declare interface REQ_INFO {
'ID': number,
'stat': 'unRespon' | 'error' | 'success',
'respon': any,//存放响应数据
'requestor': Function,//存放http请求方法,用以首次发送和超时重传
'errCount': number//用来给超时重传进行计数
}适用范围:
- 多任务同时进行的情况
- 例如:多线程管理,多异步函数并行管理