大家是怎么让消息队列的消息出队的?

大家是怎么让队列的消息出队的?
独立启动一个或多个线程,然后while(true){}循环不断的从队列里拿出消息?
或者
启动一个定时任务,一定的时间间隔从队列里拿出消息?

阅读 4.5k
1 个回答

我用python,直接有实现queue,不用自己实现

以前用C语言写的时候:
1、入队:A把消息加入队列后,设置事件E
2、出队:B循环等待(阻塞、超时)等待事件E,若事件E发生了就被唤醒,取出所有消息处理
3、以上出队入队注意加锁

像你说的不断取,如果不阻塞等待的话,那不是死循环了?
定时器又不及时
所以关键是利用事件通知机制

当然最好是系统本身实现了类似的功能,不用自己实现

PS:以上主要针对LINUX,其它平台没弄过,但应该也可以参考一下