Java_多线程(死锁)

作者: Miss_差不多 | 来源:发表于2017-09-24 18:37 被阅读37次

死锁的思路是:多线程同时被阻塞,他们中一个或者全部都在等待某个资源被被释放.由与线程被无限期地阻塞,因此程序不可能正常终止.

public class Test4 {
    public static String obj1 = "obj1";
    public static String obj2 = "obj2";
  public static void main(String[] args) {
      sum s = new sum();
    Thread thread = new Thread(s);
    thread.start();
    func f = new func();
    Thread thread1 = new Thread(f);
    thread1.start();
    
}
}
class sum implements Runnable{

    @Override
    public void run() {
        try {
            System.out.println("开始");
            while (true) {
                synchronized (Test4.obj1) {
                    System.out.println("锁住obj1");
                    Thread.sleep(1000);
                    synchronized (Test4.obj2) {
                        System.out.println("锁住obj2");
                    }
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
        }
        
        
    }
    


class func implements Runnable{

    @Override
    public void run() {
        try {
            System.out.println("开始");
            while (true) {
                synchronized (Test4.obj2) {
                    System.out.println("----锁住obj2");
                    Thread.sleep(2000);
                    synchronized (Test4.obj1) {
                        System.out.println("----锁住obj1");
                    }
                }
            }
        } catch (Exception e) {
            
        }
        
    }
    
    
}

相关文章

  • Java_多线程(死锁)

    死锁的思路是:多线程同时被阻塞,他们中一个或者全部都在等待某个资源被被释放.由与线程被无限期地阻塞,因此程序不可能...

  • Java自学-多线程 死锁

    Java 演示多线程死锁 当业务比较复杂,多线程应用里有可能会发生死锁 步骤 1 : 演示死锁 线程1 首先占有对...

  • Java并发案例01---多线程之死锁

    多线程之死锁案例一

  • java_多线程

    java_多线程 线程创建方式;join用法; sleep和wait区别; 线程安全和不安全的java集合; St...

  • Java_多线程

    线程概述 进程 是程序的一次动态执行 对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己...

  • Java_多线程

    1.知识点: 1.介绍多线程2.线程安全 2.知识点的运用: 1.多线程的作用: 发挥多核CPU的优势,充分利用C...

  • jstack命令:教你如何排查多线程问题

    这是之前的一个死锁案例: 一个多线程死锁案例,如何避免及解决死锁问题? 如程序中发生这样的死锁问题该如何排查呢?我...

  • 并发编程情况下几个相应问题简介

    1.并发编程的挑战之死锁 ​ 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多...

  • 5. 死锁

    线程死锁 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序...

  • 多线程分析——死锁代码demo

    前言 本文主要是对Java多线程死锁代码demo的分析,对其过程以及死锁进行了大致的概括,希望对大家有帮助。 死锁...

网友评论

    本文标题:Java_多线程(死锁)

    本文链接:https://www.haomeiwen.com/subject/dgxlextx.html