由于pthread系列的函数都是成功时返回0,我们需要一段判断处理错误的代码:#define TINY_CHECK(exp)\ if(!exp)\ { \ fprintf(stderr, "File : %s, Line : %d Exp : ...
分类:
系统相关 时间:
2014-10-06 21:11:10
阅读次数:
248
本篇我们将讨论线程Thread、互斥锁MutexLock、条件变量Condition的封装;说明:1、MutexLock、Condition利用构造函数和析构函数自动完成资源的申请和释放;2、MutexLock、Condition和Thread 都涉及到系统资源,这些类全部为不可复制的;例如,a程序...
分类:
系统相关 时间:
2014-10-06 18:49:20
阅读次数:
278
本文对Linux中的pthread_mutex_t做一个简易的封装。 互斥锁主要用于互斥,互斥是一种竞争关系,主要是某一个系统资源或一段代码,一次做多被一个线程访问。 条件变量主要用于同步,用于协调线程之间的关系,是一种合作关系。 Linux中互斥锁的用法很简单,最常用的是以下的几个函数: int ...
分类:
系统相关 时间:
2014-10-06 18:47:20
阅读次数:
188
java 线程 被互斥阻塞、检查中断示例讲解----thinking java4...
分类:
编程语言 时间:
2014-10-06 16:05:40
阅读次数:
191
APUE 线程 - 程序清单
程序清单11-1 打印线程ID
程序清单11-2 获得线程退出状态
程序清单11-3 pthread_exit 的参数不正确使用
程序清单11-4 线程清理处理程序
程序清单11-5 使用互斥量保护数据结构
程序清单11-6 使用两个互斥量
程序清单11-7 简化的加,解锁
程...
分类:
编程语言 时间:
2014-10-05 01:31:37
阅读次数:
191
linux下的同步和互斥
Linux sync_mutex
Semaphore.h
一份好文档,胜读十年书
本文参考了诸多资料,百度百科,cplusplus等
首先介绍一个头文件
#include
这里面包含了大多数的所需要使用的信号量.
包含:
int sem_init(sem_t *sem, int pshared, unsigned int value)...
分类:
系统相关 时间:
2014-10-03 23:39:55
阅读次数:
378
1.下列哪个选项不是产生死锁的必要条件()A、互斥条件B、 网络不可达C、 不可剥夺资源D、环路等待E、 占有等待2.根据左侧给出的概念,在右侧写出其对应的OSI模型层的名称。设备、概念名称EIA\TIA RS-232、网卡物理层TCP、UDP传输层IP、ARP、OSPF网络层HTTP、DNS、FT...
分类:
其他好文 时间:
2014-10-02 20:56:33
阅读次数:
648
四态写回无效协议MESI MESI在MSI协议的基础上改进的,增加了一个互斥独占状态E。 为什么要引入? 考虑当一个顺序先读入一个数据项,然后修改一个数据项时,就要产生一个BusRd事务用来得到内存块,并置为S状态,然...
分类:
其他好文 时间:
2014-10-02 14:48:24
阅读次数:
156
Boost Lockfree
flyfish 2014-9-30
为了最大限度的挖掘并行编程的性能考虑使用与锁无关的数据结构来编程
与锁无关的数据结构不是依赖于锁和互斥来确保线程安全。
Lockfree的重要操作就是CAS(Compare And Set)原子操作
原子操作就是多个线程访问同一个资源时,有且仅有唯一 一个线程对该资源进行操作
BOOST中的宏定义
BOOST_...
分类:
其他好文 时间:
2014-09-30 16:31:43
阅读次数:
160
首先,先来看几个概念:
同步:协作的过程,例如,多人开发合作;
互斥:争抢资源的过程,例如苦逼的大学选课;
临界区:进程中对临界资源实施操作的那段程序;
临界资源:一次只能一个进程使用的资源,例如打印机;
信号量:表示资源数量;相对于各个进程来说的;
P操作(-1):申请资源;
V操作(+1):释放资源;
一,单缓冲区的生成者消费者问...
分类:
其他好文 时间:
2014-09-29 22:36:31
阅读次数:
173