线程同步:在一个线程访问数据未结束的时候,其他线程不得对同一个数据进行访问
线程同步的实现方式--锁
-
二元信号量:适用于只能被唯一一个线程访问的资源。
-
多元信号量(信号量):一个初始值为N的信号量允许N个线程并发访问:
1.将信号量减1;
2.如果信号量为0,线程进入等待状态 ,否则继续执行;访问完资源线程释放信号量,进行如下操作:
3.将信号量加1;
4.如果信号量值小于1,唤醒一个等待中的线程 -
互斥量 类似
二元信号量
:
区别:信号量可以由一个线程获取另外一个线程释放,而互斥量只能由同一个线程获取和释放。 -
临界区:
只在本进程内有效
进入临界区:临界区的锁的获取
离开临界区:临界区的锁的释放 -
读写锁
-
条件变量
网友评论