首页 > 其他分享 >synchronized嵌套synchronized 案例

synchronized嵌套synchronized 案例

时间:2023-09-12 10:56:41浏览次数:34  
标签:synchronized Thread 案例 System lock2 嵌套 lock1 new


public class MultiLockExample {
    private Object lock1 = new Object();
    private Object lock2 = new Object();

    public void method1() throws InterruptedException {
        synchronized (lock1) {
            System.out.println("进入方法1");

            // 线程在获取lock1锁后,进入阻塞状态并等待100毫秒
//            Thread.sleep(100);
            // 线程尝试获取lock2锁
            synchronized (lock2) {
                System.out.println("执行方法1");
                lock2.notify();
            }
        }
    }

    public void method2() throws InterruptedException {
        synchronized (lock2) {
            System.out.println("进入方法2");
            lock2.wait();
            // 线程尝试获取lock1锁
            synchronized (lock1) {
                System.out.println("执行方法2");

            }
        }
    }

    public static void main(String[] args) {
        MultiLockExample example = new MultiLockExample();

        Thread thread1 = new Thread(() -> {
            try {
                example.method1();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        Thread thread2 = new Thread(() -> {
            try {
                example.method2();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });

        thread1.start();
        thread2.start();
    }
}

标签:synchronized,Thread,案例,System,lock2,嵌套,lock1,new
From: https://www.cnblogs.com/jishaling/p/17695583.html

相关文章

  • Unity 性能优化之Shader分析处理函数 ShaderUtil.GetAvailableShaderCompilerPlatform
    Unity性能优化之Shader分析处理函数ShaderUtil.GetAvailableShaderCompilerPlatforms用法点击封面跳转到Unity国际版下载页面简介在Unity中,性能优化是游戏开发过程中非常重要的一环。其中,ShaderUtil.GetAvailableShaderCompilerPlatforms函数是一个内部函数,它可以帮助......
  • Unity 性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing: 深入解析与
    Unity性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing:深入解析与实用案例点击封面跳转到Unity国际版下载页面简介在Unity中,性能优化是游戏开发过程中非常重要的一环。其中,Shader的优化对于游戏的性能提升起着至关重要的作用。本文将深入解析Unity中的Sh......
  • 售楼部酒店异形天花装置吊顶 保利西悦湾营销中心大堂不锈钢波浪纹天花吊顶实景案例
    售楼部酒店异形天花装置吊顶保利西悦湾营销中心大堂不锈钢波浪纹天花吊顶实景案例......
  • 一个详细且完整的公司局域网搭建案例,跟着操作!
    局域网(LocalAreaNetwork,简称LAN),用于将有限范围内(例如一个实验室、一层办公楼或者校园)的各种计算机、终端与外部设备互联成网。公司局域网怎么建立?首先来了解下不同规模企业网络组建方式。10人以下企业网络组建10人以下,规模比较小的公司一般对网络应用需求较低,由于人数少,基本也......
  • 数据库数据恢复-Oracle数据库误执行truncate table的数据恢复案例
    Oracle数据库故障&分析:北京某单位Oracle11gR2数据库误执行truncate table CM_CHECK_ITEM_HIS,表数据丢失,查询该表时报错。数据库备份无法使用,表数据无法查询。Oracle数据库Truncate数据的机理:执行Truncate命令后,ORACLE数据库会在数据字典和Segment Header中更新表的Data O......
  • kunyu 工具的常见案例和示例命令
    kunyu工具的常见案例和示例命令:基本主机搜索:执行基本的主机搜索,以获取有关特定域或IP地址的信息。 SearchHostexample.com基本Web搜索:执行基本的Web搜索,以查找与特定查询条件相关的网站。 SearchWeb"vulnerabilitiesinWordPress"SSL证书搜索:搜索与指......
  • shell脚本嵌套和case语句
    forvarin{list}dodoneforvarinvar1var2var3dodonefor((expr1;expr2;expr3))dodoneforvardodoneuntilexpr[](())dodonewhileexpr[](())dodone随机数:bash中默认有一个变量RANDOM 范围0~32767set|grepRANDOMecho$RANDOM产生0~1之间的随机数echo$[$RANDOM%2]产生......
  • 用友U8与MES系统API接口对接案例分析
    企业数字化转型:轻易云数据集成平台助力U8ERP+MES系统集成为什么选择数字化转型?领导层对企业资源规划(ERP)的深刻理解促使了数字化转型的启动。采用精确的“N+5”滚动计划,为供应商提供充分的预期信息,确保准时化生产。精细管理刀具采购和车间设备,优化生产计划和过程。通过轻......
  • Java学习_004 数据输入:案例2
    需求:三个和尚的身高需要手动输入,请用程序实现这三个和尚的最高身高。importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intheight1=sc.nextInt();intheight2......
  • Java学习_002 案例2:三个和尚
    需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。1publicclassMain{2publicstaticvoidmain(String[]args){3intheight1=150;4intheight2=210;5intheight3......