zoukankan      html  css  js  c++  java
  • ZeroMq实现跨线程通信

    ZeroMq实现跨线程通信

    之前在技术崇拜的技术经理指导下阅读了ZeroMq的基础代码,现在就将阅读的心得与成果记录一下,并重新模仿实现了一下经理的异步队列。

    1、对外接口

    //主要接口
    (1)void *ymq_attach (void *ctx_, int oid, void* sink_); (2)void *ymq_detach (void *ctx_, int oid); (3)void *ymq_register_timer (void *ctx_, int oid, int timeout, int id_); (4)void *ymq_unregister_timer (void *ctx_, int oid, int id_); (5)void *ymq_send_asyn_msg (void *ctx_, int oid, ymq_msg_t* msg);
    struct ymq_msg_t;
    //对外接口类
    class i_asyn_obj_events { public: virtual void attach_event () = 0; virtual void detach_event () = 0; virtual void timer_event (int id_) = 0; virtual void message_event (ymq_msg_t* id_) = 0; };

    接口(1)用于初始化一个异步对象(后面有对异步对象的阐述),并在几个具有事件监控能力的线程中选择一个负载最少的线程作为异步对象托管线程。

    接口(2)暂时没有实现的功能,用于从托管线程中分离的接口。

    接口(3)在一个被托管了的异步对象上注册一个定时器。

    接口(4)撤销定时器

    接口(5)向对应ID的被托管的异步对象发送消息

    接口类的4个接口函数分别对应的功能是:当异步对象被托管成功后发生的事件、托管分离时发生的事件,定时器产生事件,和异步消息到达事件。

    2、后续。。。

    时间已经很晚,休息了,继续总结。

  • 相关阅读:
    最快速度找到内存泄漏
    PostMessage与SendMessage各自的问题
    分享一个javascript alert精简框架
    SendMessage、PostMessage原理
    八款常用的 Python GUI 开发框架推荐
    大学学物理将来到底能干什么?
    私有虚函数的特点(C++和Java的机制还有所不同)
    BS与CS的比较
    Eclipse代码自动提示设置
    打印TMemo的内容到打印机
  • 原文地址:https://www.cnblogs.com/sangzaohaishui/p/4937736.html
Copyright © 2011-2022 走看看