• 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、后续。。。

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

  • 相关阅读:
    3星|《中国古城墙》:重要的古城墙的资料汇集
    bindingSource具体使用案例
    WPF第三方控件盘点
    FluentValidation具体使用案例
    Visual Studio 版本管理从TFS迁移到SVN
    Image.FromStream与Image.FromFile使用区别
    判断图片的格式的方法
    WCF测试小程序
    使用AutoMapper 处理DTO数据对象的转换
    获取mac地址和IP地址方式
  • 原文地址:https://www.cnblogs.com/sangzaohaishui/p/4937736.html
Copyright © 2020-2023  润新知