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

Java进阶教程,全面剖析Java多线程编程,线程安全,笔记12

Java进阶教程,全面剖析Java多线程编程,线程安全,笔记12

一、参考资料

多线程&JUC-12-线程的安全问题

多线程&JUC-13-同步代码块

多线程&JUC-14-同步代码块的两个小细节

二、笔记总结

2.1、线程安全问题

  • 下图代码中,模拟三个线程卖一百张票,出现了两个问题
    • 票被重复卖出
    • 票的数量超过了一百张
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

2.2、问题原因分析

在这里插入图片描述

2.3、问题解决办法

  • 使用 synchronized 线程锁
    • 当线程1抢占到资源,开始执行买票的逻辑代码时,线程2和线程3即使抢到了资源,也必须等待,线程1执行完 synchronized 中的代码后,线程2和线程3才能执行 synchronized 中的代码。
    • 从下图的打印看出,一百张票,正常卖出。
      在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/394317.html

相关文章:

  • DCC-GARCH模型与代码实现
  • 实验3掌握 Java 如何使用修饰符,方法中参数的传递,类的继承性以及类的多态性
  • 【本地持久化】功能-总结
  • 深入浅出现代FPU浮点乘法器设计
  • LinkedHashMap 访问顺序模式
  • 破解K个最近点问题的深度思考与通用解法
  • 链式结构的特性
  • 报表1-创建sql函数get_children_all
  • 9月20日 周六 农历七月廿九 哪些属相需要谨慎与调整?
  • godot实现tileMap地图
  • 【Unity+VSCode】NuGet包导入
  • QEMU虚拟机设置网卡模式为桥接,用xshell远程连接
  • Week 17: 深度学习补遗:Boosting和量子逻辑门
  • 【论文速递】2025年第13周(Mar-23-29)(Robotics/Embodied AI/LLM)
  • Webpack进阶配置
  • 【LeetCode 每日一题】3227. 字符串元音游戏
  • 【图像算法 - 26】使用 YOLOv12 实现路面坑洞智能识别:构建更安全的智慧交通系统
  • 009 Rust函数
  • IT疑难杂症诊疗室
  • 视频播放器下载推荐,PotPlayer‌,KMPlayer,MPC-HC,GOM Player‌VLC media player,MPV,
  • Day04 分治 递归 | 50. Pow(x, n)、22. 括号生成
  • (博主大回归)洛谷题目:P1986 元旦晚会 题解 (本题简)
  • Windows Docker 环境下 VLLM 大模型存储最优解:Docker-Desktop 实例目录与多容器协同挂载方案
  • Elasticsearch面试精讲 Day 20:集群监控与性能评估
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘pydantic’ 问题
  • 设置永不待机 系统语言
  • PWA(渐进式Web应用)
  • gdb文档_第二章
  • 基础IO
  • Linux开发工具