1.定义
异步:由于存在消息队列,生产者产生的数据不能立刻被消费者处理,中间会有延迟,因此归为异步。
异步与同步的区别:
同步:线程A要请求某个资源,但是此资源正在被线程B使用中,因为同步机制存在,线程A请求不到,只能等待下去;
异步:线程A要请求某个资源,但是此资源正在被线程B使用中,因为没有同步机制存在,线程A仍然请求的到,线程A无需等待。
2.代码
1.获取消息的方法
如果队列为空,消费者进程释放锁进入waitset队列,不为空则取出队列中的头部节点并唤醒生产者再返回。
生消息的方法
如果队列满了,生产者进程释放锁进入waitset队列等待,没有满则将消息加入队列中的尾部节点并唤醒消费者。