多线程-死锁

news2024/12/23 8:37:10
/**
 * 死锁demo
 */
public class DeadlockDemo {
    public static void main(String[] args) {
        // 创建两个对象
        final Object resource1 = "resource1";
        final Object resource2 = "resource2";

        // 创建第一个线程
        Thread t1 = new Thread(() -> {
            // 尝试锁定resource1
            synchronized (resource1) {
                System.out.println("Thread 1: locked resource 1");

                try {
                    // 使线程睡眠一段时间
                    Thread.sleep(100);
                } catch (Exception e) {
                    e.printStackTrace();
                }

                // 尝试锁定resource2
                synchronized (resource2) {
                    System.out.println("Thread 1: locked resource 2");
                }
            }
        });

        // 创建第二个线程
        Thread t2 = new Thread(() -> {
            // 尝试锁定resource2
            synchronized (resource2) {
                System.out.println("Thread 2: locked resource 2");

                try {
                    // 使线程睡眠一段时间
                    Thread.sleep(100);
                } catch (Exception e) {
                    e.printStackTrace();
                }

                // 尝试锁定resource1
                synchronized (resource1) {
                    System.out.println("Thread 2: locked resource 1");
                }
            }
        });

        // 启动两个线程
        t1.start();
        t2.start();
    }
}

查看

方式1:
1) 命令 gps 查看pid
2)记下pid 使用 jstack 命令查看

方式2:
使用jconsole命令打开jdk的监控控制台查看
在这里插入图片描述

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

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

相关文章

pe文件之手工构建节表(段表)和节的具体内容

一、实验目的 通过使用winHex手动 在原来的文件中 追加节(.text代码节、.rdata引入函数节、.data数据节),然后利用stud_pe添加节表的name,大小等信息,对一个pe文件进行修复,从而了解一个pe文件的具体构成 二、实验步骤…

免费AI学习网站(二)

国内绘画midjourney网站 http://aijiaolian.chat优质提示词分解教学 https://q3iylvv7qj.feishu.cn/docx/UGMzdPVGjo1fHcxu1kjcuXFcnff?fromfrom_copylink设计图AI实战,如何用AI提高83%的出图效率?https://q3iylvv7qj.feishu.cn/docx/Fsxxd3MncowFUix5…

同步请求和异步请求

同步请求和异步请求是在网络编程中常用的两种通信模式,它们有以下区别: 同步请求: 在发送一个请求后,程序会一直等待服务器返回响应,期间无法进行其他操作。请求发出后,程序会阻塞在请求处,直…

深入剖析:如何通过API优化云计算架构?快来看!

在当今数字化时代,云计算已经成为企业实现创新、提高效率和降低成本的核心策略之一。而在构建和管理云计算架构时,API(应用程序编程接口)的作用变得愈发重要。本文将深入探讨如何通过API优化云计算架构,实现更高效、灵…

深入探索 Java 8 新特性:Lambda 表达式

深入探索 Java 8 新特性:Lambda 表达式 ​ 在软件开发领域,不断的进步和创新是推动技术发展的关键。Java 8 作为一个重要的版本,引入了许多令人兴奋的新特性,其中最受瞩目的之一就是 Lambda 表达式。Lambda 表达式的引入使得 Jav…

【Linux】Linux之间如何互传文件(详细讲解)

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

[golang gin框架] 46.Gin商城项目-微服务实战之后台Rbac客户端调用微服务权限验证以及Rbac微服务数据库抽离

一. 根据用户的权限动态显示左侧菜单微服务 1.引入 后台Rbac客户端调用微服务权限验证功能主要是: 登录后显示用户名称、根据用户的权限动态显示左侧菜单,判断当前登录用户的权限 、没有权限访问则拒绝,参考[golang gin框架] 14.Gin 商城项目-RBAC管理,该微服务功能和上一节[g…

Python有哪些优质的可视化工具

目录 1. Matplotlib 2. Seaborn 3. Plotly 4. Bokeh 5. Plotly Express 6. ggplot 7. Altair 8. Wordcloud 9. D3.js (Data-Driven Documents) 10. NetworkX 11. Pygal 12. Folium 总结 在数据分析和数据科学的领域中,可视化是一种强大而直观的方式来呈…

VTK 判断一个 点 是否在一个模型 stl 内部 vtk 点是否在内部 表面 寻找最近点

判断 一个点 ,判断是否在风格 stl 模型内部,或表面: 目录 1.方案一:使用vtkCellLocator FindClosestPoint 找到模型上距离给定点最近的一点,计算两点的距离 ,小于某一阈值 则认为此点在模型上; 2.方案二…

Esp8266学习7. 点亮JMD0.96C-1 OLED屏

Esp8266学习7. 点亮JMD0.96C-1 OLED屏 一、ESP32-C3 I2C资源简介1. 简介2. 准备工作 二、I2C协议简介1. 起始条件(Start Condition):2. 设备地址传输(Device Address Transmission):3. 从设备响应&#xff…

玩转单元测试之gtest

引言 程序开发的时候,往往需要编写一些测试样例来完成功能测试,以保证自己的代码在功能上符合预期,能考虑到一些异常边界问题等等。 gtest快速入门 1.引入gtest # 使用的是1.10版本,其他版本可根据需要选择 git clone -b v1.1…

踩坑经验:JavaScript 中的 for...of 和 for...in 循环

在 JavaScript 编程中,for...of 和 for...in 是常用的循环语法,但它们在使用时可能会引发一些意想不到的问题。本文将分享我在使用这两种循环时所遇到的坑和经验。 两者的区别: 适用对象类型: for…of:主要用于遍历可…

微信开发之一键删除好友的技术实现

简要描述: 删除联系人 请求URL: http://域名地址/delContact 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wI…

小红书运营 新号快速涨粉方法

大家好,我是网媒智星,今天跟大家分享一下小红书新号快速涨粉的方法。 新手博主在刚开始使用小红书时往往会陷入一个误区,他们热衷于发布自己认可的笔记,然后迫不及待地去查看数据,却发现没有获得赞赏和关注。 然而&…

微信小程序登录及登录态管理

一,小程序登录 小程序登录 | 微信开放文档 接口应在服务器端调用,详细说明参见服务端API。 接口说明 接口英文名 code2Session 功能描述 登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。更多使…

Android Framework 全局替换系统字体

基于Android 11 Android Framework 全局替换系统字体 第一种通过替换系统默认字体 将需要替换的字体资源放置frameworks/base/data/fonts/目录下。 将系统默认的Roboto字体替换为HarmonyOs字体。 frameworks/base/data/fonts/fonts.xml frameworks/base/data/fonts/Android.…

Docker容器与虚拟化技术:Docker镜像创建、Dockerfile实例

目录 一、理论 1.Docker镜像的创建方法 2.Docker镜像结构的分层 3.Dockerfile 案例 4.构建Systemctl镜像(基于SSH镜像) 5.构建Tomcat 镜像 6.构建Mysql镜像 二、实验 1.Docker镜像的创建 2. Dockerfile 案例 3.构建Systemctl镜像(…

AI抢饭碗!新闻集团将使用生成式AI,每周自动写3000篇新闻丨IDCF

作者:AIGC开放社区 8月1日,英国卫报消息,全球最大新闻媒体公司之一的新闻集团,将使用生成式AI每周自动创建3000篇澳大利亚本地新闻。 据悉,新闻集团在内部成立了一个名为“Data Local”的部门只有4名员工,…

爱校对:塑造无瑕公文的强大工具

在公文处理的世界中,每个字、每个标点都需要细心打磨,确保无一瑕疵。如何能达到这种精确无误的程度呢?让我们一起来看看强大的爱校对软件如何帮助我们塑造无瑕的公文。 首先,爱校对软件采用先进的自然语言处理和深度学习技术&…

IDA远程调试真机app

IDA远程调试真机app 第一步:启动 android_server,并修改端口 # 启动android_server ./android_server -p31928第二步:端口转发、挂起程序 # 端口转发adb forward tcp:31928 tcp:31928# 挂起程序 adb shell am start -D -n com.qianyu.antid…