条件变量(conditionvariable)线程间的同步与互斥技术,主要以互斥锁和条件变量为主,条件变量和互斥所的配合使用可以很好的处理对于条件等待的线程间的同步问题。举个例子:消费者和生产者问题。消费者与生产者最基本的关系是服务与被服务的关系,但是在线程同步与互斥中强调..
分类:
编程语言 时间:
2016-04-25 22:52:47
阅读次数:
315
信号量和Mutex类似,表示可用资源的数量,和Mutex不同的是,这个数量可以大于1,即如果信号量描述的资源数目是1时,此时的信号量和互斥锁相同。下面我们看看POSIXsemaphore库函数,它既可以用于同一进程的线程间同步,也可以用于不同进程间的同步。1.intsem_init(sem_t*sem,i..
分类:
其他好文 时间:
2016-04-25 01:11:34
阅读次数:
326
一.读写锁在多线程环境下为了防止对临界资源访问的冲突我们往往会在线程函数中加入互斥锁来完成线程间的互斥;但是,在有些情况下,互斥锁mutex并不是那么高效,比如当要对一块缓冲区进行读写操作的时候,因为读的需要比写入修改的需要要多,读取数据并不会修改缓冲区的数据个..
分类:
其他好文 时间:
2016-04-24 18:58:52
阅读次数:
497
互斥量:多个线程同时访问共享数据时可能会冲突,这跟信号的可重性是同样的问题。如果两个线程都要把某个全局变量增加1,这个操作在某平台需要三条指令完成:1.从内存读变量值到寄存器2.寄存器的值加13.将寄存器的值写回内存先举个例子:创建两个线程,各把counter增加5000次,正常..
分类:
编程语言 时间:
2016-04-23 07:44:58
阅读次数:
218
在单线程条件下,由于对数据操作,在同样的时间下,只有一个线程来操作。所以不用担心数据的同步问题。现代的操作系统,大都提供并发机制,虽然有时候是表面的并发。在Linux中,并发用的最多的是基于线程的并发,进程的代价太高了,这样,一个共享的数据,在同一时间内互斥锁提..
分类:
其他好文 时间:
2016-04-23 01:49:43
阅读次数:
238
在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁等待。这里整理了Java中的各种锁,若有不足之处希望大家在下方留言探讨。公平锁和非公平锁公平锁是指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来一次获得锁。公平锁的好处是等待锁的线程不会饿死,但是整体效率相对低一些;非公平锁的好处是整体效率相对高一些,但是有...
分类:
编程语言 时间:
2016-04-22 20:23:53
阅读次数:
221
使用volatile关键字的场景
Volatile 变量具有 synchronized 的可见性特性,但是不具备原子特性。这就是说线程能够自动发现 volatile 变量的最新值。Volatile 变量可用于提供线程安全,但是只能应用于非常有限的一组用例:多个变量之间或者某个变量的当前值与修改后值之间没有约束。因此,单独使用 volatile 还不足以实现计数器、互斥锁或任何具有与多个变量相关的...
分类:
编程语言 时间:
2016-04-22 19:20:33
阅读次数:
240
一.概述:条件变量是线程同步的一种机制,它是通过一个条件,当条件满足时,唤醒一个线程,但条件不满足时,挂起该线程。由于同步是伴随着互斥的,所以条件变量一般都伴随着互斥锁。二.相关函数:(1).cond:pthread_cond_tcond=PTHREAD_COND_INITIALIZERcond是一个全局变量,..
分类:
编程语言 时间:
2016-04-22 16:53:14
阅读次数:
291
线程与进程程序相当于工厂,进程相当于车间,线程相当于工人。在一个工厂中往往有多个车间,在一个车间上有多个工人并行工作。
同车间上的工人共享房间,但是有些房间一次只能容纳一个人,比如厕所。在厕所里有人的时候,其他人不能进入。一个防止他人进入的简单方法,就是门口加一把锁。先到的人锁上门,后到的人看到上锁,就在门口排队,等锁打开再进去。这就叫”互斥锁”(Mutual exclusion,缩写 Mutex...
分类:
编程语言 时间:
2016-04-21 01:42:53
阅读次数:
274
ios 下锁使用 时间:2014-08-08 15:36:56 标签:class 代码 问题 文件 使用 com http 线程 总结下我所了解的ios下的锁: 1. 互斥锁 @synchronized,@synchronized块隐式的添加一个异常处理例程来保护代码。该处理例程会在异常抛出的时候自 ...
分类:
移动开发 时间:
2016-04-21 01:13:07
阅读次数:
280