zoukankan      html  css  js  c++  java
  • 死锁现象

    /*
    java中同步机制解决了线程安全问题,但是也同时引发死锁现象。
    
    死锁现象:
    
    死锁现象出现 的根本原因:
        1. 存在两个或者两个以上的线程。
        2. 存在两个或者两个以上的共享资源。
        
    死锁现象的解决方案: 没有方案。只能尽量避免发生而已。
    
     */
    
    class DeadLock extends Thread{
        
        public DeadLock(String name){
            super(name);
        }
        
        
        public void run() {
            if("张三".equals(Thread.currentThread().getName())){
                synchronized ("遥控器") {
                    System.out.println("张三拿到了遥控器,准备 去拿电池!!");
                    synchronized ("电池") {
                        System.out.println("张三拿到了遥控器与电池了,开着空调爽歪歪的吹着...");
                    }
                }
            }else if("狗娃".equals(Thread.currentThread().getName())){
                synchronized ("电池") { 
                    System.out.println("狗娃拿到了电池,准备去拿遥控器!!");
                    synchronized ("遥控器") {
                        System.out.println("狗娃拿到了遥控器与电池了,开着空调爽歪歪的吹着...");
                    }
                }
                
            }    
        }
        
        
    }
    
    public class Demo2 {
    
        public static void main(String[] args) {
            DeadLock thread1 = new DeadLock("张三");
            DeadLock thread2 = new DeadLock("狗娃");
            //开启线程
            thread1.start();
            thread2.start();
            
            
        }
        
    }
  • 相关阅读:
    MathType如何插入竖直线
    MongoDB时间类型
    《穆斯林的葬礼》读书笔记
    Fluentd安装——通过rpm方式
    MongoDB安装、管理工具、操作
    Flask服务入门案例
    python判断类型
    linux硬链接与软链接
    python 环境问题
    Linux进程管理工具——supervisor
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6361533.html
Copyright © 2011-2022 走看看