之前我们介绍过生产者-消费者模型,意思也就是说,如果有两个线程同时申请临界资源,那么就会有可能产生线程同步的错误,而解决这个问题,我们就要依赖互斥锁。
我们先来说说,互斥锁究竟做到了什么?
我们已经知道,之前的时候,因为我们使用两个线程同步操作资源,导致指令交叉进行,产生了错误,这是问题的根源所在。
那么,互斥锁,它做到的是,让我们的线程操作,按照顺序去执行。
我们称互斥锁的这种特性为:原子性
而从宏观来讲,又什么是原子性呢?
- 原子性指的是一系列的操作不可被中断的特性。
- 这一系列操作要么是全部执行完成,要么是全部没有执行。
- 不存在部分执行部分未执行的情况。