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

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

阅读 4.5k
1 个回答

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

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进