news 2026/6/10 13:10:27

Java常见技术分享-17-多线程安全-并发编程的核心问题的解决方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java常见技术分享-17-多线程安全-并发编程的核心问题的解决方案

可见性的解决方案

  • volatile 关键字(只能修饰变量)。 他的作用是 告诉JVM 这个变量不允许被缓存, 每次读写必须直接操作主内存。 这样 就能保证 没有缓存一致性的问题。
  • synchronized 关键字。 在进入代码块的时候 ,线程会读取主内存的变量值到自己的工作内存, 在执行完操作后, 又会写到主内存中,这样其他的线程就能立即看到。

原子性的解决方案

  • synchronized关键字, 把需要执行原子操作的代码块锁住, 就行了, 因为这个关键字 本身是互斥锁。
  • 使用AtomicInteger 原子类,这个类是靠CPU 的CAS指令 来确保原子性的,即乐观锁(核心思想 先尝试,失败了再重试)的底层实现,且实现方式是自旋锁, 所以在竞争激烈的时候,线程一直占用着CPU资源, 很耗费CPU资源, 不如用synchronized

有序性的解决方案

  • volatile 关键字。 他的作用是 禁止 编译器和CPU的指令排序优化,给多线程协作加上了顺序保障。
  • synchronized关键字, 因为同一个代码块只能被一个线程占用, 所以对于同一个代码块 不会有多线程协作, 也就不会有有序性的问题。 能确保指令重排后, 执行后的结果如预期一样。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/31 6:08:32

YOLO与Prometheus Thanos Ruler集成:跨集群告警规则

YOLO与Prometheus Thanos Ruler集成:跨集群告警规则 在智慧园区、智能制造和边缘视觉分析等场景中,一个日益突出的挑战是:如何将AI推理服务的“智能输出”真正纳入企业级监控体系?传统的做法往往是把YOLO这类目标检测模型当作黑盒…

作者头像 李华
网站建设 2026/6/10 12:07:02

STL专项:vector 变长数组

以下内容为学习过程中所记录的笔记 推荐引入万能头文件 #include<bits/stdc.h> //万能头文件 / 预编译头文件&#xff0c;它的本质是包含了 C 标准库中几乎所有常用的头文件&#xff08;比如输入输出、字符串、容器、算法、数学函数等&#xff09; using namespa…

作者头像 李华
网站建设 2026/6/10 12:14:00

YOLO模型训练资源使用趋势预测:基于历史数据分析

YOLO模型训练资源使用趋势预测&#xff1a;基于历史数据分析 在智能制造工厂的质检线上&#xff0c;一台AOI&#xff08;自动光学检测&#xff09;设备每秒拍摄数十张PCB板图像&#xff0c;系统必须在200毫秒内完成缺陷识别并决定是否停机。这样的高实时性要求背后&#xff0c;…

作者头像 李华
网站建设 2026/6/10 11:49:35

采样率、信号频谱/频谱混叠原理与matlab仿真分析

目录 1.采样率(fs​)与采样定理——奈奎斯特采样定理 2.信号的频谱分析 连续信号 离散信号 3.频谱混叠 1.采样率(fs​)与采样定理——奈奎斯特采样定理 采样率是指对连续模拟信号进行离散化时&#xff0c;每秒采集的样本点数&#xff0c;单位为Hz(赫兹&#xff0c;1Hz1个样…

作者头像 李华
网站建设 2026/6/10 11:47:51

《创业之路》-761-《架构思维:从程序员到CTO》第四部 - 架构师的职业规划与能力成长:从执行者到战略引领者的跃迁,技术、业务与软技能的三角支撑。

一、职业规划&#xff1a;从执行者到战略引领者的跃迁阶段划分与目标设定短期&#xff08;1-3年&#xff09;&#xff1a;夯实技术基础&#xff0c;掌握至少一门主流编程语言&#xff08;如Java、Python&#xff09;&#xff0c;熟悉分布式系统、微服务架构等设计理念&#xff…

作者头像 李华