什么是死锁(死锁的理解)

多线程和锁

多线程和锁作为并发编程的两个重要概念,在提升了程序性能的同时,也带来了一些编码的复杂性。锁的出现就是为了保证在多线程的时候操作一组资源数据的一致性,我们在给资源加上锁之后,只有拥有了这个锁的线程才能操作此资源,其余的线程只能排队。

举个例子:例如你去换衣间试衣服,你进去了把门锁上,那么在这期间谁都无法进入,等你开门出来,别人才能进入。

什么是死锁

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

通俗点说:死锁就是两个线程同时占用两个资源,但又在彼此等待对方释放锁。
什么是死锁(死锁的理解)_第1张图片

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