zoukankan      html  css  js  c++  java
  • Java演示死锁代码

    死锁代码

    public class DeadLock {

        final Object lockA = new Object();
        final Object lockB = new Object();

        public static void main(String[] args) {
            DeadLock demo = new DeadLock();
            demo.startLock();
        }

        public void startLock() {
            ThreadA a = new ThreadA(lockA, lockB);
            ThreadB b = new ThreadB(lockA, lockB);

            // start threads
            a.start();
            b.start();
        }

    }

    class ThreadA extends Thread {

        private Object lockA = null;
        private Object lockB = null;

        public ThreadA(Object a, Object b) {
            this.lockA = a;
            this.lockB = b;
        }

        public void run() {
            synchronized (lockA) {
                System.out.println("*** Thread A: ***: Lock A");
                try {
                    sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (lockB) {
                    System.out.println("*** Thread A: ***: Lock B");
                }
            }

            System.out.println("*** Thread A: ***: Finished");
        }

    }

    class ThreadB extends Thread {

        private Object lockA = null;
        private Object lockB = null;

        public ThreadB(Object a, Object b) {
            this.lockA = a;
            this.lockB = b;
        }

        public void run() {
            synchronized (lockB) {
                System.out.println("*** Thread B: ***: Lock B");
                try {
                    sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (lockA) {
                    System.out.println("*** Thread B: ***: Lock A");
                }
            }

            System.out.println("*** Thread B: ***: Finished");
        }

    }

    控制台截图:

      

  • 相关阅读:
    POJ 3660 Cow Contest (floyd求联通关系)
    POJ 3660 Cow Contest (最短路dijkstra)
    POJ 1860 Currency Exchange (bellman-ford判负环)
    POJ 3268 Silver Cow Party (最短路dijkstra)
    POJ 1679 The Unique MST (最小生成树)
    POJ 3026 Borg Maze (最小生成树)
    HDU 4891 The Great Pan (模拟)
    HDU 4950 Monster (水题)
    URAL 2040 Palindromes and Super Abilities 2 (回文自动机)
    URAL 2037 Richness of binary words (回文子串,找规律)
  • 原文地址:https://www.cnblogs.com/chenmingjun/p/9671043.html
Copyright © 2011-2022 走看看