分类目录归档:消息循环

libevent zmq消息无法响应

前言

服务器使用libevent做事件循环, 然后使用zmq做线程间通讯, libevent监听zmq的消息, 一旦zmq有消息过来, 就会回调到固定的函数。使用zmq需要注意的是, 一旦zmq消息回调, 必须读空整个队列的消息. 否则下次就不会回调。

问题症状

我们使用libevent监听了多个zmq, 同时监听了别的事件(退出事件等). 其中有一个zmq消息非常繁忙, 每秒会产生上万到十万不等的数据. 这种时候会发现libevent再也无法响应其他消息。
继续阅读

浅析事件驱动与消息驱动

事件

简而言之就是发生了一件事情, 文件读完了, socket打开了, socket关闭了, 指的是一件发生了的事情.

消息

message, 我们可以认为就是简单的几个单词, 比如:张三告诉我文件读完了, 我获得了一个消息, 这个消息是张三告诉我的, 关于文件读完的消息.
继续阅读