java 死锁
Posted 光阴易逝,岂容我待
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 死锁相关的知识,希望对你有一定的参考价值。
package test; public class LockExer { private static String lockA="locka"; private static String lockB="lockb"; public void methodA() throws Exception { synchronized (lockA){ System.out.println("我是A方法获取锁A:"+Thread.currentThread().getName()); // 让出CPU执行权,但是不释放锁 Thread.sleep(1000); synchronized (lockB){ System.out.println("我是A方法获取锁B:"+Thread.currentThread().getName()); } } } public void methodB() throws Exception { synchronized (lockB){ System.out.println("我是B方法获取锁B:"+Thread.currentThread().getName()); // 让出CPU执行权,但是不释放锁 Thread.sleep(1000); synchronized (lockA){ System.out.println("我是B方法获取锁A:"+Thread.currentThread().getName()); } } } public static void main(String[] args) { LockExer lockExer = new LockExer(); new Thread(()->{ try { lockExer.methodA(); } catch (Exception e) { e.printStackTrace(); } }).start(); new Thread(()->{ try { lockExer.methodB(); } catch (Exception e) { e.printStackTrace(); } }).start(); System.out.println("执行完成"); } }
以上是关于java 死锁的主要内容,如果未能解决你的问题,请参考以下文章