并发--快速查询死锁信息

news2024/9/20 9:30:34
使用jstack查看线程堆栈信息

jstack:jdk提供的一个工具,可以查看java进程中线程堆栈信息。

位于:jdk1.8.0_121\bin包下

死锁代码
    public class DeadLockDemo {
        private static String A = "A";
        private static String B = "B";
        public static void main(String[] args) {
              new DeadLockDemo().deadLock();
        }
        private void deadLock() {
            Thread t1 = new Thread(() -> {
                synchronized (A) {
                    try { Thread.currentThread().sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    synchronized (B) {
                        System.out.println("1");
                    }
                }
            });
            Thread t2 = new Thread(() -> {
                synchronized (B) {
                    synchronized (A) {
                        System.out.println("2");
                    }
                }
            });
            t1.start();
            t2.start();
        }
    }

解释产生原因

        t1拿到锁将资源A锁住,此时时间片到了,线程切换到t2,t2锁住了资源B,此时轮到t1继续执行t1想锁住资源B

        由于synchronized是独占型锁,t1只能等t2释放B的资源,但是t2又需要锁住资源A才能执行完代码并释放锁

        此时t1等待t2释放资源,t2等待t1释放资源,此时就形成了死锁

 具体的死锁相关概念请看我的另一边博客,这里就不详细介绍了

 博客地址:http://t.csdnimg.cn/07ORE

如何查询死锁信息

1.首先程序一直未结束,上段代码就可能出现了死锁现象

2.找到上面说的那个工具双击点击后是这个页面

3.找到我们运行的程序,并点击线程

4.此时出现了提示检测到死锁,然后我们点击线程 Dump

5.然后根据信息,我们可以清楚的看到程序发生死锁的原因

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1961816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频平台麓战奥运经济,谁能接住这“破天的富贵”?

文丨郭梦仪 与巴黎奥运会炸裂开幕式的“松弛感”不同,赛场外的流量之争早已硝烟弥漫。 今年,腾讯、咪咕、快手、抖音与中央广播电视总台达成奥运转播版权合作,长短视频平台各占一半。 而今,获得转播权的视频平台们,…

20240731 每日AI必读资讯

📱苹果AI版iOS首日火爆:聊天秒变高情商,大模型成最强嘴替,Siri华丽变身 - 苹果的Apple Intelligence终于面世!随着iOS 18.1 Beta版的上线,注册开发者从即日起就能体验到苹果AI的部分功能。 - Siri的全面换…

出行方案,智能推荐:用友BIP商旅云6.0推出AI新装备

随着企业业务的不断拓展和员工出行需求的日益复杂化,传统的商旅预订方式已经难以应对,同时企业在商旅成本控制方面也面临着巨大的挑战。为此用友BIP商旅云6.0推出了创新性的AI新装备——智能推荐,以智能分析与精准预测,为企业提供…

基于springboot的大学奖学金评定管理系统表结构调试讲解源码

基于springboot的大学奖学金评定管理系统 赠送自己录的运行教程视频,无经验也可以运行起来。 提供远程调试服务,加钱可远程帮忙运行起来。 项目功能: 二、项目功能介绍 管理员 个人中心:这是管理员的个人工作区域,允许管理员…

vue基础3

1.推荐好用的第三方框架 BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务 1.moment.js 2.dayjs 2.收集表达数据 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Document</title><…

MSYS2下载安装和使用

Minimalist GNU&#xff08;POSIX&#xff09;system on Windows&#xff0c;Windows下的GNU环境。 目录 1. 安装 2. pacman命令 3. 配置vim 4. 一些使用示例 4.1 编译代码 4.2 SSH登录远程服务器 1. 安装 官网下载&#xff1a;https://www.msys2.org/ 双击.exe文件&am…

【python】OpenCV—Faster Video File FPS

文章目录 1、需求描述2、正常方法 cv2.read3、加速方法 imutils.video.FileVideoStream4、涉及到的核心库函数4.1、imutils.video.FPS4.2、imutils.video.FileVideoStream 5、参考 1、需求描述 使用线程和队列数据结构将视频文件的 FPS 速率提高 &#xff01; 我们的目标是将…

解决Qt3D程序场景中无法显示创建的立体图形?

有的新手在创建Qt3D程序时&#xff0c;因为不熟练&#xff0c;导致经常遇到无法显示3D图形的情况。 原因其实也简单&#xff0c;就是设置的摄像机的位置不对&#xff0c;或者压根没有设置摄像机。 // CameraQt3DRender::QCamera *cameraEntity view.camera();cameraEntity-&g…

文件未保存后能否恢复?分享实用恢复指南,6个方法

在日常用电脑时文件未保存而导致的数据丢失&#xff0c;是许多人都会遭遇的棘手问题。那么面对这样的情况&#xff0c;文件真的能够恢复吗&#xff1f;本文将深入分析文件恢复的可能性&#xff0c;并提供一系列实用的建议。 一、了解文件恢复的基础 首先我们需要明白文件恢复并…

每一次新建终端固定到某个环境,配置PyCharm终端以自动激活环境

在PyCharm中&#xff0c;即使已经为项目设置了特定的Python解释器&#xff0c;默认情况下&#xff0c;新建的终端可能不会自动激活与项目绑定的Conda虚拟环境。要解决这个问题&#xff0c;可以采取以下步骤&#xff1a; 1. 配置PyCharm终端以自动激活环境 PyCharm支持为每个项…

手把手教你用家用电脑完成图片和视频AI去水印功能

一.效果展示 二.video-subtitle-remover源码地址 soda151314/video-subtitle-remover: 基于AI的图片/视频硬字幕去除、文本水印去除&#xff0c;无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API&#xff0c;本地实现。AI-based tool for removing hard-cod…

孟德尔随机化、R语言,报错,如何解决?

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

推荐一款前端滑动验证码插件(Vue、uniapp)

uniapp版本&#xff1a;滑块拼图验证码&#xff0c;有后端&#xff0c;简单几步即可实现&#xff0c;小程序、h5都可以用 - DCloud 插件市场 Vue版本及cdn版本可以查阅文档&#xff1a; 行为验证 | Poster 文档 示例代码&#xff1a; <template><view id"app&…

使用阿里云的PAI-DSW进行语音关键词的训练

以前使用谷歌的Colab进行过在线的模型训练&#xff0c;不过要科学上网总是比较麻烦&#xff0c;今天第一次尝试使用阿里云的人工智能平台PAI/交互式建模&#xff08;DSW&#xff09;进行在线训练。 我采用的训练笔记本是TensorFlow的Simple audio recognition: Recognizing ke…

贝锐蒲公英视频监控方案:无需专线,实现连锁酒店摄像头集中监看

公司业务主要围绕连锁品牌酒店经营&#xff0c;从2019年成立至今&#xff0c;已经在北京、上海、杭州、武汉、南京、深圳等地设立了多家门店。为了实现集中管理&#xff0c;北京总部需要实时监看或调取各地酒店内的监控摄像头&#xff0c;并将监控数据集中存储至监控中心的服务…

智云-一个抓取web流量的轻量级蜜罐

智云-一个抓取web流量的轻量级蜜罐 安装环境要求 apache php7.4 mysql8 github地址 https://github.com/xiaoxiaoranxxx/POT-ZHIYUN 系统演示

【康复学习--LeetCode每日一题】3111. 覆盖所有点的最少矩形数目

题目&#xff1a; 给你一个二维整数数组 point &#xff0c;其中 points[i] [xi, yi] 表示二维平面内的一个点。同时给你一个整数 w 。你需要用矩形 覆盖所有 点。 每个矩形的左下角在某个点 (x1, 0) 处&#xff0c;且右上角在某个点 (x2, y2) 处&#xff0c;其中 x1 < x…

Base64解码时Illegal base64 character 20问题解决

一&#xff0c;问题 在使用Base64解码的时候 // 这里的keyContent是公钥&#xff0c;一般配置到配置中心里&#xff0c;然后注入到容器里 String publicKeyString keyContent .replaceAll("\\n", "") .replace("-----BEGIN PUBLIC KEY-----",…

二进制搭建 Kubernetes v1.20(中)

一、部署 CNI 网络组件 目录 一、部署 CNI 网络组件 1.flannel简介 1&#xff09;UDP模式 2&#xff09;VXLAN 模式 2.部署flannel ​编辑 3.Calico简介 1.flannel简介 K8S 中 Pod 网络通信&#xff1a;●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff0…

什么是网络安全等级保护测评服务?

等保测评 依据国家网络安全等级保护制度规定&#xff0c;按照有关管理规范和技术标准&#xff0c;对非涉及国家秘密的网络安全等级保护状况进行检测评估。定级协助 根据等级保护对象在国家安全、经济建设、社会生活中的重要程度&#xff0c;以及一旦遭到破坏、丧失功能或者数据…