引子
异步线程调用
异步调用线程,线程消息回调主线程
其他线程 作为生产者产出消息,主线程作为消费者 消费其他线程的产出
多个线程之间消息传递
示例 渲染系统,将渲染任务交给Render线程,将数据收集交给Collect线程
主线程(传递消息到Render线程) -> 渲染任务(消息告诉Collect线程去收集需要的信息) -> Collect任务(消息传递到Render线程) -> 渲染任务执行-> 执行完成以后消息(传递消息到主线程) -> 主线程执行下一帧循环
需要 几个 消费队列
- 主线程消费队列
- 渲染任务完成消息
- Render 线程消费队列
- 主线程渲染任务
- Collect线程渲染信息
- Collect 线程消费队列
- 渲染线程需要收集什么信息
要保证Render线程和Collect线程处于激活状态
通过线程池创建线程
前端线程和后端线程是不同的,
后端线程在主线程退出后就暂停销毁了
前端线程还会继续执行