zoukankan      html  css  js  c++  java
  • 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("执行完成");
        }
    }
  • 相关阅读:
    因子和阶乘
    周期串
    字符串~键盘错位
    6174问题
    HDU_1015——撬锁,5循环
    HDU_1372——骑士移动,二维空间BFS
    HDU_1372——骑士移动,BFS非模版
    HDU_2001——计算两点之间的距离
    HDU_2212
    HDU_1999——不可摸数
  • 原文地址:https://www.cnblogs.com/honghong75042/p/13218794.html
Copyright © 2011-2022 走看看