当前位置: 首页 > news >正文

【2013-11-27】《Java编程思想》读书笔记:synchronized

[历史归档]本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。
发布时间:2013-11-27| 标题:《Java编程思想》读书笔记:synchronized分类:编程 / java / think_in_java |标签:java·think in java·多线程·synchronized


《Java编程思想》读书笔记:synchronized

    • SyncTest.java
    • 部分日志输出
    • 备注

整理 Java 多线程相关技术,这里备份synchronized关键字的使用代码,展示方法级和代码块级两种同步方式。

GitHub:https://github.com/cstriker1407/think_in_java

SyncTest.java

publicclassSyncTest{privatestaticSyncTestinstance=newSyncTest();publicstaticvoidtest(){newThread(newRunnable(){@Overridepublicvoidrun(){for(inti=0;i<5;i++){instance.funA();try{Thread.sleep(1);}catch(InterruptedExceptione){e.printStackTrace();}}}}).start();newThread(newRunnable(){@Overridepublicvoidrun(){for(inti=0;i<5;i++){instance.funB();try{Thread.sleep(1);}catch(InterruptedExceptione){e.printStackTrace();}}}}).start();}publicsynchronizedvoidfunA(){System.out.println("A start");try{Thread.sleep(1);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("A end");}publicvoidfunB(){synchronized(this){System.out.println("B start");try{Thread.sleep(1);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("B end");}}}

部分日志输出

A start A end B start B end A start A end B start B end A start A end B star

备注

funA()使用synchronized修饰方法,funB()使用synchronized(this)代码块,两者锁的对象相同(当前实例),互斥效果一致。日志显示 A start/end 和 B start/end 不会交错出现。

http://www.jsqmd.com/news/1185469/

相关文章:

  • stable-diffusion.cpp:纯C/C++实现AI绘画推理,打造轻量高效的生成式AI运行时
  • 表格 deepseek 工具哪个好用无需纠结,AI 导出鸭适配全场景表格导出
  • Unity 2022.3中Spine动画导入失败排查与版本兼容性解决方案
  • 2026年版中国地下运矿车市场发展战略规划及投资方向研究报告
  • Cursor多文件上下文协同失效?97%开发者忽略的context.windowSize阈值与动态裁剪策略
  • ArduSub入门指南:水下ROV运动控制原理与实战调参
  • C++26契约编程正式入标:用前置后置条件将防御式检查从文档变成编译器强制行为
  • Windows网络管理利器:Net命令实战指南与场景解析
  • 元初混沌 6G 全域通感一体化体系架构 第一卷二阶第二十五篇 三才组网体系闭环总结
  • 从哈尔到D20:多贝西小波(DB小波函数)的演进与工程选型指南
  • 【目标检测--tricks】FPN与PAN:从结构演进到实战融合
  • Windows C盘清理终极指南:从原理到实践的完整解决方案
  • springboot2.7.16到3.5.16,srpingcloud2021.0.1->2025.0.3,jdk1.8->17,升级记录一(从踩屎坑到上岸的辛酸历程)
  • 基于含噪监督的卫星影像树木计数
  • 深入解析栈缓冲区溢出:ASan原理、实战与防范指南
  • 地球作为一个意识体:基于自由能原理与复杂系统理论的推演
  • kali中使用nmcli命令进行网络配置
  • C++异常处理全解析:从语法到RAII与异常安全实战
  • 天津百达翡丽回收价格查询与靠谱回收平台实测排行(2026年7月最新数据) - 诚收名表回收平台
  • 重塑你的Xfce桌面:从轻量到精致的现代化改造
  • 关于C++面向对象设计的访问性问题详解
  • LeCun团队通用AI新突破:分层预测与能量基模型解析
  • TokenSpeed:专门为 Agentic Workloads 设计的大模型推理框架
  • 基于YOLOv8的安全手套检测系统:从原理到部署实战
  • TVA具身智能范式研究进展(5)
  • 线性回归原理与回归线数学推导详解
  • 心电基础笔记:心电导联体系
  • 【安心陪诊 Agent】Node.js 20 + Express 4 实战:Web Demo 与规则 Agent 架构
  • 超低功耗电源管理系统设计与优化实践
  • AI Agent沙箱逃逸事件激增320%(2024 Q1数据):构建不可绕过的行为围栏技术白皮书