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

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

转载于:https://www.cnblogs.com/sangzaohaishui/p/4937736.html

ZeroMq实现跨线程通信相关推荐

  1. 【原创】modb 功能设计之“跨线程通信”

    2019独角兽企业重金招聘Python工程师标准>>> 在< modb 功能设计之"支持多消费者单生产者" >中曾提到,需要解决"rabbi ...

  2. EventBus,轻松实现跨组件跨线程通信

    安卓基础开发库,让开发简单点. DevRing & Demo地址:github.com/LJYcoder/De- 学习/参考地址: http://blog.csdn.net/itachi85/ ...

  3. js 原生跨页面通信_DOM操作是跨线程的你知道吗?

    在JS世界里面浏览器有两个重要的功能,分为渲染引擎和JS引擎.渲染引擎专门负责渲染Html和css的,JS引擎是专门用来执行JS的.这两个引擎是在不同的线程里面,它们都自己做着自己的事情,互不打扰. ...

  4. Android的跨进程通信

    Android系统的跨进程简介 为什么不能直接跨进程通信? 为了安全考虑,应用之间的内存是无法互相访问的,各自的数据都存在于自身的内存区域内. 如何跨进程通信? 要想跨进程通信,就要找到一个大家都能访 ...

  5. Android 跨进程通信大总结

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/111553746 本文出自[赵彦军的博客] 文章目录 1.Android进程 2.修 ...

  6. Jmeter之Bean shell使用(四)——跨线程组之间的全局参数传递

    使用场景: 请求API需要授权令牌,但是授权令牌只需要获取一次,即可调用服务器上其他业务接口. 所以我想要把授权操作放在单独的一个线程,业务流放在其他线程. 这就需要我把从授权线程获取的令牌传入业务流 ...

  7. 多线程总结之旅(12):跨线程调用控件的几种方式

    本来是写完线程池就结束多线程总结之旅系列的,但是想想平时在项目中用到线程仅仅不够的,为什么这么说呢?举个例子:我们有一个函数,它的功能就是加载数据,然后绑定到datagridview.现在我们开启一个 ...

  8. C#中利用委托实现多线程跨线程操作

    在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常.这是微软为了保证线程安全以及提高代码的效率所做的改进,但是也给大家带来很多不便. 其实解决这个 ...

  9. [转]Messenger:使用消息的跨进程通信

    本文转自:http://xwangly.iteye.com/blog/1109424 Messenger:信使 官方文档解释:它引用了一个Handler对象,以便others能够向它发送消息(使用mM ...

最新文章

  1. JS实现转动随机数抽奖的特效代码
  2. web设计页面跳转的方法
  3. 【转】tf中的padding方式SAME和VALID有什么区别?
  4. LESSON 11.4 原理进阶:AdaBoost算法流程详解
  5. 将信息写入TXT文本中(java)
  6. 双11不过瘾?双十二低至半价继续抢,更有免费学的机会等你抢!
  7. UVA719 Glass Beads 最小表示 / 后缀自动机
  8. python标签使用教程_怎样用Python做标签云
  9. Linphone编译【转载】
  10. JVM学习-CAS与原子类
  11. LeetCode 58.最后一个单词的长度(python、c++)
  12. 自学python能找到工作吗-学习完Python后真的能找到工作吗?老男孩Python培训班
  13. iOS开发系列--Objective-C之类和对象
  14. 2021 年最佳开源软件榜单出炉!
  15. html5华迪,比亚迪永通华迪4S店:元新能源最低售8.19万
  16. 【优化算法】动物迁徙优化算法(AMO)【含Matlab源码 1806期】
  17. 群晖wordpress如何连接mysql,玩转群晖虚拟机:非插件安装WordPress
  18. 关于grldr is missing
  19. 2016这一年读过的那些书
  20. 豆瓣高分JAVA书籍,值得收藏

热门文章

  1. struts2中使用标签操作静态方法等
  2. View 5.1 重装上阵(4—基础架构篇)
  3. Unable to complete the scan for annotations for web application
  4. JS将EXCEL文件导入前端第一行未出现或者出现F1F2F3的解决方法……
  5. 使用Oracle调度程序自动完成任务
  6. web设计经验七13步打造优雅的WEB字体
  7. cocos2d-js 自定义事件监听派发
  8. 《零成本实现Web自动化测试--基于Selenium》第一章 自动化测试基础
  9. 删除当前及子文件夹中的空目录
  10. 微软以后要是也开源也免费,java还竞争过.NET吗?