开发者社区> 问答> 正文

异步接口Async是否必须一个事件库?

我的目的是异步的往别的机器的redis服务器写日志。
同步接口速度比较慢。所以想用异步的。
但是异步的似乎必须绑定到一个事件库上?类似libev,或者libevent,或者ae.c
也就是说我必须首先单独起一个线程,运行事件库的主循环,
1.然后在别的线程调用redisAsyncCommand来发送日志?不知道我的理解是否正确。
2.这么干有没有线程同步的问题?
3.有没有hiredis异步多线程使用的例子?

展开
收起
落地花开啦 2016-02-06 10:17:00 2582 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    1.必须绑定到事件库,redisAsyncCommand把命令写入缓存,然后注册一个写的函数到事件库,等待事件库发现fd可写之后调用这个函数来做真的写。
    2.线程是否同步不清楚。目前自己写了一个2线程的,一个线程做事件主循环,一个发送Command,但是内存有问题core出来了。
    第三个还不太清楚。

    2019-07-17 18:38:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
fibjs 模块重构从回调到协程--陈垒 立即下载
fibjs 模块重构从回调到协程 立即下载
低代码开发师(初级)实战教程 立即下载