往期知识点整理
- 鸿蒙(HarmonyOS)北向开发知识点记录~
- 鸿蒙实战开发】ArkTS多线程的多线程系列(一):ArkTS多线能力入门
- 【鸿蒙实战开发】ArkTS多线程的多线程系列(二):基于Sendable共享对象实现跨线程通信及UI状态刷新
- 【鸿蒙实战开发】ArkTS多线性的多线程系列(三):基于单例实现跨线程缓存
- 【鸿蒙实战开发】ArkTS多线程的多线程系列(四):基于生产者-消费者实现多线程协同
- 持续更新中……
日志记录、埋点是较为常见的生产者-消费者模式使用场景,应用的主线程以及其他业务子线程作为生产者,在需要的时候向共享队列中插入日志或者埋点数据,消费者子线程则会从队列中将日志或者埋点信息取出,并进行相关业务处理,比如落盘、上云等。这样所有的日志、埋点处理均在子线程中完成,不占用主线程执行时间。并且业务独立,可以通过独立的团队进行开发,其他业务团队只需要向队列中插入数据即可。

生产者-消费者模式简介
生产者-消费者模式是一种经典的多线程设计模式,它为多线程间的协同提供了良好的解决方案。
在生产者-消费者模式中,通常有两类线程,即若干个生产者线程和若干个消费者线程。生产者线程负责提交用户请求,消费线程负责具体处理生产者提交的任务。生产者和消费者直接则通过共享内存缓冲区进行通信。

从图中可以得看出生产者-消费者模式的如下优点
-
性能提升:将一个耗时的流程拆成生产和消费两个阶段。
-
业务解耦:共享内存缓冲区作为生产者线程和消费者线程间的通信桥梁,避免了生产者线程与消费者线程直接通信,从而将两类线程进行解耦。也就是说生产者不需要知道消费者的存在,反之消费者也不需要知道生产者的存在。
-
性能平衡:共享内存缓冲区的设计也可以很好的解决生产者与消费者线程间的性能上的差异,可以通过调整慢的一方的并发数,从而提高任务的整体处理速度。

1433

被折叠的 条评论
为什么被折叠?



