互斥锁mutex变量的值非0即1,只能用来表示两种状态下的临界资源。而信号量是与之类似的,用来表示可用资源的,区别在于,信号量可以表示多个可用资源的。 --值为2的信号量也就是特殊的互斥锁了。 那么下边就简单实现信号量表示多个资源访问的生产者消费者问题了。 关于互斥锁,同步等问题,参加上篇博客 《l ...
分类:
编程语言 时间:
2016-07-20 06:29:13
阅读次数:
186
1.什么是信号量信号量的本质是一种数据操作锁(或者临界资源),它本身不具有数据交换功能,而是通过控制其他通信资源(文件,外部设备)来实现进程间通信,它本身是一种外部资源的标示。信号量在此过程中负责数据操作的护持,同步等功能;2为什么要使用信号量?为了防止出现多..
分类:
其他好文 时间:
2016-07-17 18:03:51
阅读次数:
383
信号量的基本概念:信号量的本质是一种数据操作锁,它本身不具有数据交互的能力,而是通过控制其它的通信资源来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的同步与互斥等功能。互斥:对临界资源的独占。临界资源:多个进程能够访问共用的资..
分类:
其他好文 时间:
2016-07-14 19:38:03
阅读次数:
184
1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥 2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。 3. 同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说 ...
分类:
编程语言 时间:
2016-07-14 15:18:07
阅读次数:
183
1、相关概念信号量:本质是一种数据操作锁,本身不具有数据交换的功能,而是通过其他的通信资源(文件,外部设备)实现进程间通信,本身是一种外部资源的标识。相当于计数器,记录临界资源内资源可用数,保证进入临界区时有资源可用。负责数据操作的同步、互斥等功能。临界资源..
分类:
系统相关 时间:
2016-07-07 14:29:20
阅读次数:
242
创建2个线程买票,涉及到临界资源保护。 创建线程代码如下: ticketsThreadone = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil]; [ticketsThreadone setName: ...
分类:
其他好文 时间:
2016-07-03 15:46:33
阅读次数:
166
今天给大家分享的内容是MySQL锁的常见误区。MySQL的锁包括两种lock和latch。latch的面向对象是线程,主要用来管理数据库临界资源的并发访问,锁的时间非常短,也不会产生死锁。不需要人工干预,所以这里我们不再做介绍。而lock则是面向事务的,操作的对象是数据库的表、页及行,用来管理并发线 ...
分类:
数据库 时间:
2016-06-21 17:30:00
阅读次数:
234
信号量的本质是种数据操作锁,它本不具有数据交换的功能,是通过控制其他的通信资源(件,外部设备)来实现进程间通信,它本只是种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。当请求个使信号量来表的资源时,进程需要先读取信号量的值来判断资源是否可..
分类:
其他好文 时间:
2016-06-21 11:06:07
阅读次数:
250
1.原子操作 2.临界区概述 临界区:进程中访问临界资源的一段需要互斥执行的代码。 进入区:检查可否进入临界区的一段代码,如可进入,设置相应“正在访问临界区”标志。 退出区:清除“正在访问临界区”标志。 3.临界区访问规则 空闲则入:没有进程在临界区时,任何进程可进入。 忙则等待:有进程在临界区时, ...
分类:
其他好文 时间:
2016-05-30 08:46:13
阅读次数:
180
本质:计数器。当前资源个数
生命周期:随内核
本身不具有数据交换的功能,是通过控制其他通信资源(文件、外部设备)来实现进程间通信,本身是一种外部资源的标识。在此过程中负责数据操作的互斥与同步功能。
互斥:独占临界资源(排他)
同步:建立在互斥基础上(顺序性)
主..
分类:
系统相关 时间:
2016-05-27 07:10:23
阅读次数:
306