死锁的产生:1)系统的资源不足 2)进程的推进顺序不当
3)资源分配不当等
死锁的四个必要条件:
1)循环等待:若干进程之间形成一种头尾衔接的循环等待资源的关系
2)不可剥夺:进程获得的资源,在没有结束之前,不能强行剥夺
3)请求与保持: 一个进程因请求资源而阻塞时,对已获得的资源保持不放
4)互斥:一个资源每次只能被一个进程使用
锁机制:
java允许多线程并发控制,当多个线程操作同一个共享资源变量时(增删改查),将会导致数据出现不正确的结果,相互之间产生冲突,因此加入锁保证了该变量的唯一性和准确性。