随笔分类 -  多线程编程

摘要:作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/07/2807484.html 本文作者: 姚继锋 (2001-08-11 09:05:00) 黄鹏程(2009 阅读全文
posted @ 2016-01-26 14:06 zengzy 阅读(4406) 评论(2) 推荐(3) 编辑
摘要:上一篇记录了几种环形缓冲区的设计方法和环形缓冲区在生产者消费者模式下的使用(并发有锁),这一篇主要看看怎么实现并发无锁。 0、简单的说明 首先对环形缓冲区做下说明: 环形缓冲区使用改进的数组版本,缓冲区容量为2的幂 缓冲区满阻塞生产者,消费者进行消费后,缓冲区又有可用资源,由消费者唤醒生产者 缓冲区 阅读全文
posted @ 2016-01-20 21:49 zengzy 阅读(5539) 评论(0) 推荐(2) 编辑
摘要:1、环形缓冲区 缓冲区的好处,就是空间换时间和协调快慢线程。缓冲区可以用很多设计法,这里说一下环形缓冲区的几种设计方案,可以看成是几种环形缓冲区的模式。设计环形缓冲区涉及到几个点,一是超出缓冲区大小的的索引如何处理,二是如何表示缓冲区满和缓冲区空,三是如何入队、出队,四是缓冲区中数据长度如何计算。 阅读全文
posted @ 2016-01-19 17:22 zengzy 阅读(7908) 评论(4) 推荐(1) 编辑
摘要:在上一篇中说到了mailbox_t的底层实际上使用了管道ypipe_t来存储命令。而ypipe_t实质上是一个无锁队列,其底层使用了yqueue_t队列,ypipe_t是对yueue_t的再包装,所以我们先来看看yqueue_t是怎么实现的。 1、yqueue_t yqueue_t是一个高效的队列, 阅读全文
posted @ 2016-01-18 11:45 zengzy 阅读(6888) 评论(6) 推荐(4) 编辑
摘要:在zeromq源码分析笔记之架构说到了zmq的整体架构,可以看到线程间通信包括两类,一类是用于收发命令,告知对象该调用什么方法去做什么事情,命令的结构由command_t结构体确定;另一类是socket_base_t实例与session的消息通信,消息的结构由msg_t确定。命令的发送与存储是通过m 阅读全文
posted @ 2016-01-15 21:00 zengzy 阅读(6152) 评论(1) 推荐(3) 编辑
摘要:1、zmq概述 ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。引用云风的话来说:ZeroMQ 并不是一个对 socket 的封装,不能用它去实现已有的网络协议。它有自己的模式,不同于更底层的点对点通讯模式。它有比 阅读全文
posted @ 2016-01-13 12:40 zengzy 阅读(14100) 评论(2) 推荐(5) 编辑

levels of contents