Java中线程锁是到底怎么锁的

Python08

Java中线程锁是到底怎么锁的,第1张

所谓锁,就是指当前运行线程获取某个对象的同步监视器.如何锁,物理层面的话,不用知道了。软件层面,通俗的将,有个实例对象,该对象有个锁,某个线程先获取该对象的锁后,其他线程是不能再获取的。只有该线程主动释放锁,其他线程才可以公平的争夺这把锁。未获得锁的线程,执行到同步方法的时候,就得等着别人释放锁,然后去抢。没抢到,就继续等着被人主动释放

两个或者多个线程之间相互等待,导致线程都无法执行,叫做线程死锁

产生死锁的条件:

1.有至少一个资源不能共享

2.至少有一个任务必须持有一个资源并且等待获取另一个被别的任务持有的资源

3.资源不能任务抢占

4.必须有循环等待

高淇Java300集视频教程对线程死锁有详细的讲解。