异步通信原理
1.1 观察者模式
-
观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe)
-
定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新
-
一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。
1.2 生产者消费者模式
-
传统模式
- 生产者直接将消息传递给指定的消费者
- 耦合性特别高,当生产者或者消费者发生变化,都需要重写业务逻辑。
-
生产者消费者模式
- 通过一个容器来解决生产者和消费者的强耦合问题,生产者和消费者彼此直接不直接通讯,而通过阻塞队列来进行通讯
-
数据传递流程
- 生产者消费者模式,即N个线程进行生产,同时N个线程进行消费,两种角色通过内存缓冲区进行通信。
- 生产者负责向缓冲区里面添加数据单元
- 消费者负责从缓冲区里面取出数据单元
- 一般遵循先进先出的原则