一.基础知识1.1systemV版本的信号量和POSIX下信号量的区别我们前面讲过进程间通信有三种形式:管道、消息队列、信号量。这个信号量是systemV版本下,以信号量集形式申请存在的,它标识着一个临界资源的有无从而控制不同的进程能否访问到该临界资源。但,现在,我们要讲的信号量..
分类:
其他好文 时间:
2016-04-25 01:09:49
阅读次数:
353
一.读写锁在多线程环境下为了防止对临界资源访问的冲突我们往往会在线程函数中加入互斥锁来完成线程间的互斥;但是,在有些情况下,互斥锁mutex并不是那么高效,比如当要对一块缓冲区进行读写操作的时候,因为读的需要比写入修改的需要要多,读取数据并不会修改缓冲区的数据个..
分类:
其他好文 时间:
2016-04-24 18:58:52
阅读次数:
497
临界资源:一个进程的资源对于运行在它内部的线程是共享的,一次只允许一个线程使用的资源叫做临界资源临界区:访问临界资源的那段程序叫做临界区线程的同步:同步就是协同步调,按照预定的先后顺序执行。“同”字应是指协同、协助、互相配合。线程的互斥:某一资源同时只允许..
分类:
编程语言 时间:
2016-04-22 01:25:05
阅读次数:
329
一、相关概念:临界资源:多个进程能够访问的资源临界区:访问临界资源的一段代码互斥:独占临界资源同步:带着顺序性的进程运行,(大部分)建立在互斥的情况下二元信号量:相当于一把互斥锁二、线程互斥1、造成干扰:进程进行均匀切换2、互斥量(mutex):加锁:变为原子返回值..
分类:
编程语言 时间:
2016-04-20 18:12:30
阅读次数:
216
一,代码锁 异步 并发,各干各的 (比如:一群人同时上卡车) 同步 步调一致的处理 (比如:一群人排队上公交车) 多个线程并发读写同一个资源的时候会发生“线程并发安全问题”,如果保证多线程同步访问临界资源,就可以解决; 常见的临界资源: 多线程共享实例量 静态公共变量 使用同步代码块解决线程并发安全 ...
分类:
其他好文 时间:
2016-04-19 06:10:28
阅读次数:
123
多线程共享一个进程的地址空间虽然线程间通信容易进行,但是多线程同时访问共享对象时需要引入同步和互斥机制。1.线程间的互斥,引入互斥锁的目的是用来保证共享资源数据操作的完整性。互斥锁主要用来保护临界资源,每个邻界资源都由一个互斥锁来保护,任何时刻最多只能有一个..
分类:
编程语言 时间:
2016-04-17 18:00:52
阅读次数:
179
信号量:它描述了当前某种资源的数量。它的意图在于进程间同步,就相当于一个计数器,它本身不具有数据交换的功能,而是通过控制其他通信资源来实现进程间通信。当一个进程要访问临界资源时,先要进行P操作申请资源,当大于0时,资源可以请求,申请过后,若为0,则将进程挂起;..
分类:
系统相关 时间:
2016-04-16 07:22:46
阅读次数:
339
一.信号量信号量是一种数据操作锁,本身不具有数据交换功能,而是通过控制其他的通信资源来实现进程之间的通信,简单来讲,信号量相当于一个计数器,计数当前某种资源的个数。信号量的周期也是随内核的。为了解决多个程序同时访问一个共享资源引发的问题。临界资源:多个进程能..
分类:
系统相关 时间:
2016-04-15 23:10:09
阅读次数:
313
信号量sem-----负责进程间互斥、同步等功能----计量某种资源的个数1、本质是一种数据操作锁(计数器),它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量以信号量集申请资源。临界资源:多个..
分类:
其他好文 时间:
2016-04-14 22:44:54
阅读次数:
945
一.信号量在谈论信号量之前,先要提到临界资源和临界区的概念,临界资源是指多个进程访问但一个时间段内只允许一个进程独占的资源,而临界区是指多个进程访问临界资源的这一段公共的代码。信号量的本质是一种数据操作锁,也可以说就是一个计数器,它本身并不能提供对进程间的通..
分类:
系统相关 时间:
2016-04-14 22:42:36
阅读次数:
282