计算机基础之锁的分类

2019-12-04  本文已影响0人  绍清_shao

内容

锁出现的原因

避免多个线程同时读写同一个数据而产生不可预料的后果,我们需要将各个线程对同一个数据的访问同步。所谓同步,既是指在一个线程访问数据未结束时,其他线程不得对同一个数据进行访问。
同步的最常见方法是使用锁(Lock)

信号量

二元信号量(Binary Semaphore)是最简单的一种锁,只有两种状态:占用与非占用。它适合只能被唯一一个线程独占访问的资源。当二元信号量置为非占用状态时,第一个视图获取改二元信号量的线程会获得该锁,并将二元信号量置为占用状态,此后其他的所有视图获取该二元信号量的线程将会等待,直到该锁被释放。
对于允许多个线程并发访问的资源...

互斥量

互斥量对应的是互斥锁,互斥锁分为递归锁(recursive mutex)和非递归锁(non-recursive mutex)。

上一篇 下一篇

猜你喜欢

热点阅读