没有那么多长篇大论,按自己的理解简单写了下异同。
相同点
都可以用作某一个资源的多线程互斥操作
不同点
- 自旋锁在lock之后直接进入的是循环判断状态,这时候会不停的侦查绑定的锁的状态,一旦别的线程释放了该锁,本线程会继续执行,这种情况多用于多处理器的情况,因为循环等待判断是一直占用cpu的,对cpu消耗很大
- 互斥锁跟自旋锁的不同就是在lock时候,如果别的线程已经lock了同一个锁,那么本线程会进入wait状态,不会占用cpu,直到锁被释放,就会呼起本线程
没有那么多长篇大论,按自己的理解简单写了下异同。
都可以用作某一个资源的多线程互斥操作