线程死锁:是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程互相等待对方释放资源,谁也无法继续执行,即产生了死锁。
当然死锁的产生是必须要满足一些特定条件的:
互斥条件:进程对于所分配到的资源具有排它性,即一个资源只能被一个进程占用,直到被该进程释放。
请求和保持条件:一个进程因请求被占用资源而发生阻塞时,对已获得的资源保持不放。
不剥夺条件:任何一个资源在没被该进程释放之前,任何其他进程都无法对他剥夺占用。
循环等待条件:当发生死锁时,所等待的进程必定会形成一个环路(类似于死循环),造成永久阻塞。