一些理论基础:信号量:又称为信号灯、旗语 用来解决进程(线程同步的问题),类似于一把锁,访问前获取锁(获取不到则等待),访问后释放锁。临界资源:每次仅允许一个进程访问的资源。临界区:每个进程中访问临界资源的那段代码叫临界区进程互斥:两个或以上的进程不能同时进入关于同一组共享变量的临界区域,即一个进程...
分类:
Web程序 时间:
2014-09-29 01:11:07
阅读次数:
242
并发及其管理
竞态通常作为对资源的共享访问结果而产生当两个执行线程需要访问相同的数据结构(或硬件资源)时,混合的可能性就永远存在只要可能就应该避免资源的共享共享通常是必需的,硬件资源本质上就是共享的访问管理的常见技术称为“锁定”或者“互斥”
信号量和互斥体
建立临界区:在任意给定的时刻,代码只能被一个线程执行可以使用一种锁定机制,当进程在等待对临界区的访问时,此机制可让进程进入休眠状...
分类:
系统相关 时间:
2014-09-27 23:04:20
阅读次数:
297
1
信号量
信号量可以有n把锁。
依赖的头文件
#include
函数声明
sem_t
表示信号量
int sem_init(sem_t *sem, int pshared,unsigned int value);
名称:
sem_init
功能:
...
分类:
编程语言 时间:
2014-09-25 19:49:37
阅读次数:
323
本文是学习网络上的文章时的总结,感谢大家无私的分享。
当一个线程想要访问某个共享资源,首先,它必须获得semaphore。如果semaphore的内部计数器的值大于0,那么semaphore减少计数器的值并允许访问共享的资源。计数器的值大于0表示,有可以自由使用的资源,所以线程可以访问并使用它们。
package chapter3;
import java.util.concurrent...
分类:
编程语言 时间:
2014-09-25 18:10:47
阅读次数:
224
(转)临界区,互斥量,信号量,事件的区别(线程同步) 分类: C++ windows 核心编程 2012-04-10 14:55 2064人阅读 评论(0) 收藏 举报 semaphore mfc null events thread http服务器 四种进程或线程同步互斥的控制方...
分类:
编程语言 时间:
2014-09-25 16:40:39
阅读次数:
190
理论: 临界资源 PV操作:通过信号量机制进行维护关系资源的安全---看看操作系统.... 任务对资源进行操作,为了安全要加锁,锁加载临界资源操作上(也就是对共享资源的操作) 加锁 共享资源操作 解锁编程模型: 1.通过锁 2.threadLocal 3....
分类:
编程语言 时间:
2014-09-23 23:51:35
阅读次数:
296
进程间通信的几种方式:
1、普通管道(pipe):管道是一种单工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系或者兄弟进程之间。
2、流管道(s_pipe):一种半双工的通信方式,可以双向传输。
3、有名管道(named pipe):有名管道也是半双工的通信方式,但是它允许无亲缘关系的进程间的通信。
4、信号量(semophore):信...
分类:
其他好文 时间:
2014-09-22 17:09:42
阅读次数:
211
在多线程开发中,有一个很经典的名词,那就是信号量。信号量就是用来衡量一个资源的可利用数目的,根据信号
量的多少来控制在多线程中各个资源之间的冲突问题,在Java中也提供了对信号量的支持。
而且在创建信号量的时候,第二个参数用来指定采取何种分配策略,比如当有很多线程被阻塞,但有一个机会的时
候,信号量应该选择谁去运行呢,如果选择true,就采用公平模式,到时候看哪个线程等待的时间最久,...
分类:
编程语言 时间:
2014-09-21 23:57:51
阅读次数:
277
最近看了linux的SYSTEM V信号量的部分,同时对于信号量的数据结构以及系统调用函数的具体实现进行了分析,现将这部分资料进行一个整理,以便于自己理清思路,同时便于以后的查看,若里面有写的不当之处,还望大家指教。需要说明的是本报告是基于linux-2.6.11版本第一部分 信号量的数据结构1、信...
分类:
其他好文 时间:
2014-09-16 10:31:10
阅读次数:
163
生产者消费者问题读者作家问题哲学家吃饭问题生产者消费者问题http://en.wikipedia.org/wiki/Producer%E2%80%93consumer_problem分别用锁、信号量、同步监视器模拟的例子。package thread;import java.util.Random;...
分类:
编程语言 时间:
2014-09-15 22:44:59
阅读次数:
379