写一个会导致死锁的线程
Posted java_pro
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一个会导致死锁的线程相关的知识,希望对你有一定的参考价值。
public class Test { static Object o1 = new Object(); static Object o2 = new Object(); public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { synchronized (o1) { System.out.println("线程1锁o1"); try { Thread.sleep(1000);//让当前线程睡眠,保证让另一线程得到o2,防止这个线程启动一下连续获得o1和o2两个对象的锁。 synchronized (o2) { System.out.println("线程1锁o2"); } } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); new Thread(new Runnable() { @Override public void run() { synchronized (o2) { System.out.println("线程2锁o2"); synchronized (o1) { System.out.println("线程2锁o1"); } } } }).start(); } }
以上是关于写一个会导致死锁的线程的主要内容,如果未能解决你的问题,请参考以下文章