boost锁的概述:
boost库中提供了mutex类与lock类,通过组合可以轻易的构建读写锁与互斥锁。
举个通俗的例子,如果共享资源是一个自动锁住的房间,互斥体是钥匙,进入房间必须取钥匙,离开房间应该还钥匙。这就对应着互斥体的lock(取钥匙)和unlock(还钥匙)。
动态分配内存存在类似的情况。如果忘记delete,会导致内存泄漏。它是如何解决的?在栈上分配对象...
分类:
其他好文 时间:
2016-05-19 15:13:46
阅读次数:
247
Linux--Linux互斥锁、条件变量和信号量
进行多线程编程,最应该注意的就是那些共享的数据,因为无法知道哪个线程会在哪个时候对它进行操作,也无法得知哪个线程会先运行,哪个线程会后运行。所以,要对这些资源进行合理的分配和正确的使用。在Linux下,提供了互斥锁、条件变量和信号量来对共享资源进行保护。
一、互斥锁
互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共...
分类:
系统相关 时间:
2016-05-12 21:41:20
阅读次数:
216
概述在多线程编程中往往会遇到多个线程同时访问共享的资源,这种情况我们需要通过同步线程来避免。也就是给线程加锁。
因为Objective-C是C语言的超集。,严格的来说是真超集。所以C语言当中的pthread互斥锁在Objective-C中也可以使用,但是Objective-C中定义了本身自己的锁对象和锁协议,所以本篇介绍Objective-C中的锁。NSLockNSLocking协议@protoc...
分类:
编程语言 时间:
2016-05-09 18:49:25
阅读次数:
398
线程信号量和进程信号量类似,Unix提供了两套与信号量有关的API。POSIX和System V。两套API都可以在线程和进程中使用。 进程中使用信号量是为了保证临界资源的控制,线程中已经有了互斥锁,而且还有条件变量对线程进行控制,信号量是不是就有点多余了呢? 其实在进程中也是可以使用互斥锁和控制变 ...
分类:
编程语言 时间:
2016-05-08 19:49:08
阅读次数:
160
线程安全与锁的优化 互斥锁: 从 实现原理上来讲,Mutex属于sleep-waiting类型的锁。例如在一个双核的机器上有两个线程(线程A和线程B),它们分别运行在Core0和 Core1上。假设线程A想要通过pthread_mutex_lock操作去得到一个临界区的锁,而此时这个锁正被线程B所持 ...
分类:
其他好文 时间:
2016-05-03 14:12:49
阅读次数:
186
上篇提到线程针对临界值操作时需要加锁,但是线程访问临界资源只通过锁来控制是不够的。 比如对一个数据进行操作,A线程需要读,B线程进行写。 A线程先访问临界资源,发现没有数据可以读,只能等待B线程先写,此时又占用了互斥锁,导致B线程无法得到锁,进行写操作。 此时就需要用到条件变量了,条件变量的目的就是 ...
分类:
编程语言 时间:
2016-05-02 22:58:47
阅读次数:
235
在使用线程时,经常要注意的就是访问临界资源加锁。 在编码过程由于粗心忘记加锁将带来不可预知的错误。这类错误单次运行或小并发时难以复现,当数据量变大,用户数增多时,轻则系统崩溃,大则引起数据错误。造成损失。 线程中互斥锁与进程的信号量类似,也可以看做是PV操作,用于保护临界资源,确保只有一个线程访问。... ...
分类:
编程语言 时间:
2016-05-02 21:29:28
阅读次数:
293
内存共享是进程间常用的通信方式,可以实现两个完全独立的进程通信。 在访问共享内存时,同时需要信号量进行访问控制。 使用ipcs -m命令可以查看系统共享内存,ipce -m + key 可以删除指定的共享内存。 对共享内存操作时,使用信号量对共享内存进行保护,类似与线程中的互斥锁。都可以看做是通过P... ...
分类:
系统相关 时间:
2016-05-01 23:05:25
阅读次数:
330
一.概述:信号量是一个非负整数的计数器,它通过计数器来实现多线程对临界资源的顺序访问,从而实现线程间的同步。它与进程间通信的信号量不同,进程间通信的信号量是一个信号量集,而线程间同步的信号量是一个信号。还有一点,就是对信号量的操作是原子的。信号量与互斥锁的区..
分类:
编程语言 时间:
2016-04-26 22:25:16
阅读次数:
359
一.概述:有一种情况:即对一些公共资源的访问操作很多,但修改操作比较少,而访问操作往往伴随着查找操作,中间耗时很长。此时如果用互斥锁的话,一个线程会在读操作内待的时间比较长,如果是多线程就会降低并发性。而如果用读写锁,其并发性会大大提高(理论上,有多少个cpu..
分类:
其他好文 时间:
2016-04-26 22:19:48
阅读次数:
190