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

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

  • 相关阅读:
    python 类定义 继承
    BAYSY2 的LVDS引脚 笔记
    Fedora20-32bit cross-compiling arm-linux-gcc4.3.2
    以冒泡排序为例--malloc/free 重定向stdin stdout
    笔记:程序内存管理 .bss .data .rodata .text stack heap
    第一章 数值和码制
    《将博客搬至CSDN》
    Servlet 3.0 新特性
    java Servlet接口及应用
    C语言输出单个汉字字符
  • 原文地址:https://www.cnblogs.com/sangzaohaishui/p/4937736.html
Copyright © 2011-2022 走看看