码迷,mamicode.com
首页 >  
搜索关键字:互斥锁    ( 954个结果
boost锁使用总结
boost锁的概述: boost库中提供了mutex类与lock类,通过组合可以轻易的构建读写锁与互斥锁。       举个通俗的例子,如果共享资源是一个自动锁住的房间,互斥体是钥匙,进入房间必须取钥匙,离开房间应该还钥匙。这就对应着互斥体的lock(取钥匙)和unlock(还钥匙)。      动态分配内存存在类似的情况。如果忘记delete,会导致内存泄漏。它是如何解决的?在栈上分配对象...
分类:其他好文   时间:2016-05-19 15:13:46    阅读次数:247
Linux互斥锁、条件变量和信号量
Linux--Linux互斥锁、条件变量和信号量  进行多线程编程,最应该注意的就是那些共享的数据,因为无法知道哪个线程会在哪个时候对它进行操作,也无法得知哪个线程会先运行,哪个线程会后运行。所以,要对这些资源进行合理的分配和正确的使用。在Linux下,提供了互斥锁、条件变量和信号量来对共享资源进行保护。   一、互斥锁  互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共...
分类:系统相关   时间:2016-05-12 21:41:20    阅读次数:216
Objective-C中的同步线程的锁
概述在多线程编程中往往会遇到多个线程同时访问共享的资源,这种情况我们需要通过同步线程来避免。也就是给线程加锁。 因为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
线程间同步之信号量实现环形buf
一.概述:信号量是一个非负整数的计数器,它通过计数器来实现多线程对临界资源的顺序访问,从而实现线程间的同步。它与进程间通信的信号量不同,进程间通信的信号量是一个信号量集,而线程间同步的信号量是一个信号。还有一点,就是对信号量的操作是原子的。信号量与互斥锁的区..
分类:编程语言   时间:2016-04-26 22:25:16    阅读次数:359
读写锁
一.概述:有一种情况:即对一些公共资源的访问操作很多,但修改操作比较少,而访问操作往往伴随着查找操作,中间耗时很长。此时如果用互斥锁的话,一个线程会在读操作内待的时间比较长,如果是多线程就会降低并发性。而如果用读写锁,其并发性会大大提高(理论上,有多少个cpu..
分类:其他好文   时间:2016-04-26 22:19:48    阅读次数:190
954条   上一页 1 ... 64 65 66 67 68 ... 96 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!