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");
                }
            }
            
        }
        
    }
  • 相关阅读:
    LVS是什么及作用?
    什么是cdn?
    生产者消费者模型应用场景及优势?
    提交代码报错 error: failed to push some refs to
    Appscan的使用方法
    APP性能测试指标
    系统测试方案模板
    Jmeter测试数据库
    Jmeter测试接口文档
    web系统的测试点
  • 原文地址:https://www.cnblogs.com/yeming/p/5452777.html
Copyright © 2011-2022 走看看