java多线程- 互斥锁 自旋锁

如果一个资源会被不同的线程访问修改,那么我们把这个资源叫做临界资源(《操作系统》),那么对于该资源访问修改相关的代码就叫做临界区。引入互斥锁即解决多个线程之间共享同一个共享资源,这是多线程编程需要考虑的一个问题。

互斥锁
互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。
任意时刻互斥锁的状态只有两种:开锁或闭锁。当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的所有权。当一个任务持有互斥锁时,其他任务将不能再对该互斥锁进行开锁或持有。

自旋锁
多线程是当已有线程获取资源 则已有线程获取了锁 所以在其他线程想要修改临界资源的时候 也需获取锁 可以通过循环的方式一直进行
尝试获取锁的动作

while (抢锁(lock) == 没抢到) {
}

你可能感兴趣的:(java并发,java,多线程)