概念

https://zhuanlan.zhihu.com/p/65229222
https://www.cnblogs.com/tfper/p/9862587.html

模型涉及到3个概念:生产者、消费者、缓冲区,消费者从缓冲区获取数据,生产者向缓冲区推入数据,两者一般是开启2个线程并发执行,一般需要加锁。加锁有两个目的:
1)线程安全
2)当缓冲区不满足消费者线程处理条件时,消费者线程可以通过锁的wait方法进行休眠,生产者一旦产生了新的数据,再去唤醒消费者线程。

实际应用场景

1)读流(可以是网络流、蓝牙socket、tcp、udp、串口等)解析数据
读流可以看作是生产者,读取的数据放入缓冲区,解析数据可以看作是消费者。
2)历史记录上传
产生记录可以看作是生产者,数据库作为缓冲区,上传记录可以看作是消费者。

kotlin实现生产者消费者的多种方式:https://www.icode9.com/content-4-845740.html
https://developer.51cto.com/article/679966.html


0 条评论

发表回复

您的电子邮箱地址不会被公开。