zoukankan      html  css  js  c++  java
  • 死锁代码编写

    package com.fh.interview;
    
    /**
     * @author 死锁测试
     * @create 2018-05-27 下午2:26
     **/
    
    public class DeadLockDemo {
    
        public static String resourceA = "A";
    
        public static String resourceB = "B";
    
        public static void main(String[] args) {
                deadLock();
        }
    
        public static void deadLock(){
            Thread threadA = new Thread(new Runnable() {
                public void run() {
                    synchronized (resourceA){
                        System.out.println("lock resourceA");
                        try {
    
    
                        Thread.sleep(3000);
                        synchronized (resourceB){
                            System.out.println("lock resourceB");
                        }
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                }
            },"threadA");
    
            Thread threadB = new Thread(new Runnable() {
                public void run() {
                    synchronized (resourceB){
                        System.out.println("lock resourceB");
                        synchronized (resourceA){
                            System.out.println("lock resourceA");
                        }
                    }
                }
            },"threadB");
    
            threadA.start();
            threadB.start();
        }
    
    }
    View Code

    可以使用jps查看进程ID

    使用 jstack  pid  查看进程内的线程状态

    1. 避免一个线程同时获得多个锁;
    2. 避免一个线程在锁内部占有多个资源,尽量保证每个锁只占用一个资源;
    3. 尝试使用定时锁,使用lock.tryLock(timeOut),当超时等待时当前线程不会阻塞;
    4. 对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况
  • 相关阅读:
    原码/反码/补码详解
    树剖LCA讲解
    code vs 2166 Bessie的体重问题
    code vs 3376 符号三角形
    洛谷 P3078 [USACO13MAR]扑克牌型Poker Hands
    vjudge B
    POJ 1013 Counterfeit Dollar
    POJ 1008 Maya Calendar
    POJ 1006 Biorhythms
    POJ 3252 Round Numbers
  • 原文地址:https://www.cnblogs.com/nihaofenghao/p/9096055.html
Copyright © 2011-2022 走看看