概念: 信号灯用来实现同步——用于多线程,多进程之间同步共享资源(临界资源)。信号灯分两种,一种是有名信号灯,一种是基于内存的信号灯。 有名信号灯,是根据外部名字标识,通常指代文件系统中的某个文件。 基于内存的信号灯,它主要是把信号灯放入内存的,基于内存的信号灯,同步多线程时,可以放到该多线程所属进 ...
分类:
其他好文 时间:
2018-07-15 21:08:26
阅读次数:
206
摘要: 我们已经知道,synchronized 是java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性,比如响应中断等。Lock 提供了比 synchronized更广泛的锁操作,它能以更优雅的方 ...
分类:
编程语言 时间:
2018-07-14 14:48:59
阅读次数:
176
信号灯(信号量)集 在多任务操作系统环境下,多个进程或线程会同时运行,多个任务可能可能为了完成同一个目标会相互协作,这样形成任务之间的同步关系;同样,在不同任务之间为了争夺有限的系统资源(硬件或软件资源)会进入竞争状态,这就是任务之间的互斥关系 任务之间的同步与互斥关系存在的根源在于临界资源。临界资 ...
分类:
系统相关 时间:
2018-07-11 12:38:20
阅读次数:
157
线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程 ...
分类:
其他好文 时间:
2018-07-01 11:42:37
阅读次数:
153
信号量:为控制临界资源而产生的一个或一组计数器,本质上是一个整数变量。用于进程的互斥操作 信号量基本操作 P 操作 进程申请临界资源时发出 P 操作 流程:检查信号量取值, > 0 则分配临界资源,信号值-1; 否则表示无空余资源,进程阻塞直到指定资源被释放 V 操作 进程释放临界资源时发出 V 操 ...
分类:
其他好文 时间:
2018-06-23 01:33:23
阅读次数:
164
什么是线程的同步与互斥? 互斥:指在某一时刻指允许一个进程运行其中的程序片,具有排他性和唯一性。 对于线程A和线程B来讲,在同一时刻,只允许一个线程对临界资源进行操作,即当A进入临界区对资源操作时,B就必须等待;当A执行完,退出临界区后,B才能对临界资源进行操作。 同步:指的是在互斥的基础上,实现进 ...
分类:
编程语言 时间:
2018-06-11 14:50:50
阅读次数:
300
线程安全与可重入编写方法。 1、什么是线程安全当一个函数被多个线程反复调用的时候,他会一直产生正确的结果,那么这个函数就是线程安全的。线程安全函数解决了多个线程调用函数时访问临界资源的冲突问题。 2、可重入在多线程或有异常控制流的情况下,当某个函数运行到中途时,控制流有可能被打断去执行另一个函数,而 ...
分类:
编程语言 时间:
2018-05-21 16:09:10
阅读次数:
187
并发 互斥 并行 同步 异步 多线程的区别 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。 临界资源(critical resource):一次 ...
分类:
编程语言 时间:
2018-05-02 02:27:19
阅读次数:
208
摘要: 我们已经知道,synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性,比如响应中断等。Lock 提供了比 synchronized更广泛的锁操作,它能以更优雅的方 ...
分类:
编程语言 时间:
2018-04-06 13:58:00
阅读次数:
161
1 通信方式对比 同步和互斥: (1)临界资源:对多个进程或线程均可见(也即均可操作),会产生被争夺的资源;如共享资料。 (2)临界区:操作临界资源的代码段。 (3)同步:是一种制约关系,为完成某种任务多个进程协调次序等待,传递消息,完成工作,这种关系源于进程间的合作;基于接口本身的一种特性,也就是 ...
分类:
编程语言 时间:
2018-03-30 01:11:23
阅读次数:
290