这篇文章主要介绍“mysql死锁的四个条件是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MysqL死锁的四个条件是什么”文章能帮助大家解决问题。
四个条件
2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
3、不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
实例
public class DeadLockDemo { public static Object one = new Object(); public static Object two = new Object(); public static void main(String[] args) { new Thread(() -> { //获取第一个锁,并且不会被其他线程抢占 synchronized (one) { try { System.out.println(Thread.currentThread().getName() + "获得one锁,等待two锁。"); //确保第二个线程此时先获取到了第二个锁 Thread.sleep(100); } catch (InterruptedException e) { e.printstacktrace(); } //请求获取第二锁,并且任然持有第一个锁 synchronized (two) { System.out.println(Thread.currentThread().getName() + "获得two锁。"); } } }).start(); new Thread(() -> { synchronized (two) { try { System.out.println(Thread.currentThread().getName() + "获得two锁,等待one锁。"); Thread.sleep(100); } catch (InterruptedException e) { e.printstacktrace(); } synchronized (one) { System.out.println(Thread.currentThread().getName() + "获得one锁。"); } } }).start(); } }
关于“MysqL死锁的四个条件是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程之家行业资讯频道,小编每天都会为大家更新不同的知识点。