#include
#include
#include
#include
#include
#define BUFF_SIZE 10
char buffer[BUFF_SIZE];
char count = 0; //缓冲池里的信息数目
sem_t sem_mutex; //生产者和消费者的互斥锁
sem_t p_sem_mutex; //空的时候,对消费者不可进
sem_t c_sem...
分类:
其他好文 时间:
2015-07-30 13:37:50
阅读次数:
125
管程的概念管程 (英语:Moniters,也称为监视器) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。 这些共享资源一般是硬件设备或一群变量。管程实现了在一个时间点,最多只有一个线程在执行管程的某个子程序。 与那些通过修改数据结构实现互斥访问的并发程序设计相比...
分类:
编程语言 时间:
2015-07-30 13:25:30
阅读次数:
644
管程的概念 管程 (英语:Moniters,也称为监视器) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。 这些共享资源一般是硬件设备或一群变量。管程实现了在一个时间点,最多...
分类:
编程语言 时间:
2015-07-29 19:56:21
阅读次数:
179
1.多线程同步与多线程互斥的关系其实这也是我一直困扰的问题,在这里我只是说说我的理解。我的理解是多线程互斥是针对于多线程资源而言的。而多线程同步是针对于多线程时序问题。由于线程的并发性导致其运行时间的不确定性,所以我们需要控制多个线程的协同工作。还是举卖票的例子来区别互斥和同步的区别吧:比如我们有两...
分类:
编程语言 时间:
2015-07-29 18:44:38
阅读次数:
165
安全解决 -- 互斥锁@synchronized(self) { //开始加锁,操作}优:解决多线程抢夺资源产生的数据安全问题缺:消耗CPU资源多使用前提:多条线程执行一块代码时加锁线程同步:@synchronized()多条线程在同一条线上执行(按顺序执行,与线程并发不同)nonatomic 与 ...
分类:
编程语言 时间:
2015-07-29 09:06:31
阅读次数:
147
“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。...
分类:
编程语言 时间:
2015-07-28 22:44:51
阅读次数:
373
6.11、死锁发生的条件:1) 互斥。正如我们第五章所讨论的,互斥是一种资源分配方式,保证同一个资源在同一时刻最多只能被一个进程占用,它用于防止多个进程同时共享访问不可同时共享访问的资源。2) 不可剥夺的资源分配。系统将一个资源的访问权分配给某一个进程后,系统不能强迫该进程放弃对该资源的控制权。3)...
分类:
其他好文 时间:
2015-07-28 14:23:48
阅读次数:
146
——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟...
分类:
编程语言 时间:
2015-07-28 12:26:26
阅读次数:
186
原文地址:http://blog.csdn.net/linlinlinxi007/article/details/5086806在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。1、环形缓冲区的实现原...
分类:
其他好文 时间:
2015-07-28 12:26:20
阅读次数:
121