zoukankan      html  css  js  c++  java
  • java多线程中的死锁

    产生死锁的原因:多个线程用到了多个锁,多个锁之间存在交叉关系,就有可能产生死锁。

    下面是简单的死锁,下面代码中的死锁不是一定会产生。

    package demo_1;
    
    public class TestDeadLock {
    
        public static void main(String[] args) {
            
            Thread1 thread1 = new Thread1();
            Thread2 thread2 = new Thread2();
            
            Thread t1 = new Thread(thread1);
            Thread t2 = new Thread(thread2);
            
            t1.start();
            System.out.println(234);
            t2.start();
    
        }
    
    }
    
    class MyLock{
        static Object obj1 = new Object();
        static Object obj2 = new Object();
    }
    
    class Thread1 implements Runnable{
    
        @Override
        public void run() {
            synchronized (MyLock.obj1) {
                System.out.println("lock obj1");
    /*            try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }*/
                synchronized (MyLock.obj2) {
                    System.out.println("say1..obj2");
                }
            }
            
        }
        
    }
    class Thread2 implements Runnable{
    
        @Override
        public void run() {
            synchronized (MyLock.obj2) {
                System.out.println("lock obj2");
    /*            try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }*/
                synchronized (MyLock.obj1) {
                    System.out.println("say..obj1");
                }
            }
            
        }
        
    }
  • 相关阅读:
    git命令使用方法
    git与svn对比
    浏览器缓存原理
    网络性能优化常用方法
    sass/scss 和 less的区别
    AngularJS和ReactJS对比
    让IE6,7,8支持HTML5新标签的方法
    Retina 屏移动设备 1px解决方案
    HttpClient学习
    国家二字码对照表
  • 原文地址:https://www.cnblogs.com/yeming/p/5452777.html
Copyright © 2011-2022 走看看