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

Java多线程不安全的例子

目录

1. 可见性不安全例子

2. 原子性不安全例子

3. 有序性不安全例子 


1. 可见性不安全例子

可见性:一个线程对共享变量的修改,另外一个线程不能够立刻看到。

如果多线程对共享数据进行访问而不采取同步操作的话,那么操作的结果是不一致的。

以下代码演示了 1000 个线程同时对 i执行自增操作,操作结束之后它的值有可能小于 1000。

public class ThreadUnsafeExample {private int i= 0;public void add() {i++;}public int get() {return i;}
}

 

public static void main(String[] args) throws InterruptedException {final int threadSize = 1000;ThreadUnsafeExample example = new ThreadUnsafeExample();final CountDownLatch countDownLatch = new CountDownLatch(threadSize);ExecutorService executorService = Executors.newCachedThreadPool();for (int i = 0; i < threadSize; i++) {executorService.execute(() -> {example.add();countDownLatch.countDown();});}countDownLatch.await();executorService.shutdown();System.out.println(example.get());
}

2. 原子性不安全例子

原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。

3. 有序性不安全例子 

有序性:即程序执行的顺序按照代码的先后顺序执行。

相关文章:

Java多线程不安全的例子

目录 1. 可见性不安全例子 2. 原子性不安全例子 3. 有序性不安全例子 1. 可见性不安全例子 可见性&#xff1a;一个线程对共享变量的修改&#xff0c;另外一个线程不能够立刻看到。 如果多线程对共享数据进行访问而不采取同步操作的话&#xff0c;那么操作的结果是不一致…...

vivo X Flip会是高端手机市场的又一折叠屏爆款吗?

据多个平台消息&#xff0c;vivo即将推出小折叠屏手机X Flip。据了解&#xff0c;vivo X Flip将采用轻盈便携的竖向折叠布局&#xff0c;以及非常受女性消费者喜爱的结构设计。那么&#xff0c;vivo X Flip会是vivo折叠屏的又一个爆款吗&#xff1f; 一、vivo X Flip小折叠屏手…...

MySQL中MVCC如何解决不可重复读以及幻读?

了解MVCC之前&#xff0c;我们首先需要了解以下两个概念&#xff1a;一致性非锁定读和锁定读&#xff0c;了解这两个概念之后我们在逐步分析MVCC。 一致性非锁定读和锁定读 一致性非锁定读(快照读) 对于 一致性非锁定读的实现&#xff0c;通常做法是加一个版本号或者时间戳字…...

设计模式第八讲:观察者模式和中介者模式详解

一. 观察者模式 1. 背景 在现实世界中&#xff0c;许多对象并不是独立存在的&#xff0c;其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如&#xff0c;某种商品的物价上涨时会导致部分商家高兴&#xff0c;而消费者伤心&#xff1b;还有&…...

关于 mac 本地配置域名能 ping 通,但是浏览器不能访问的问题(而其他电脑操作可访问)

关于 mac 本地配置域名能 ping 通&#xff0c;但是浏览器不能访问的问题&#xff08;而其他电脑操作可访问&#xff09;1. 配置域名的方式1.1 sudo vim /etc/hosts1.2 浏览器插件 LiveHosts2. 问题描述3. 解决问题方法3.1 尝试方法1—确保代理都关闭3.2 尝试方法2—确保域名能p…...

【代码随想录二刷】Day23-二叉树-C++

代码随想录二刷Day23 今日任务 669.修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 语言&#xff1a;C 669. 修剪二叉搜索树 链接&#xff1a;https://leetcode.cn/problems/trim-a-binary-search-tree/ 递归 class Solution { public:Tree…...

Linux GPIO 开发指南

文章目录Linux GPIO 开发指南1 概述1.1 编写目的1.2 适用范围1.3 相关人员2 模块介绍2.1 模块功能介绍2.2 相关术语介绍2.3 总体框架2.4 state/pinmux/pinconfig2.5 源码结构介绍3 模块配置3.1 kernel menuconfig 配置3.2 device tree 源码结构和路径3.2.1 device tree 对 gpio…...

记一次后端生成Zip文件通过浏览器下载后文件损坏,无法打开,不可预知的末端错误,下载后文件比源文件增大

记一次后端生成Zip文件问题前言问题出现排查一、流没有关好二、写入了空白字节三、没有flush定位环节一、生成二、通过SwaggerUI、PostMan进行下载三、结论解决方法前言 在项目上线前夕&#xff0c;临时添加了个数据导出的接口&#xff0c;需求是导出压缩包&#xff0c;选择了项…...

python中savgol_filter的详细解释

目录savgol_filter简介savgol_filter原理参数window_length对平滑的效果参数polyorder的平滑效果savgol_filter简介 Savitzky-Golay滤波器最初由Savitzky和Golay于1964年提出&#xff0c;是光谱预处理中常用滤波方法&#xff0c;它的核心思想是对一定长度窗口内的数据点进行k阶…...

C语言--指针进阶1

目录回顾字符指针指针数组数组指针&数组名和数组名的区别数组指针的使用指针作为形参练习数组参数、指针参数一维数组传参二维数组传参一级指针传参二级指针传参回顾 指针的内容&#xff0c;我们在初级阶段已经有所涉及了&#xff0c;我们先来复习一下 指针就是个变量&am…...

ssh的使用

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…...

Apache Hadoop生态-目录汇总-持续更新

目录 1&#xff1a;系统服务分布图 3台分布式架构 1台单机架构 服务版本介绍 2&#xff1a;服务目录 存储相关 数据采集 任务调度 即席查询 数据可视化 集群监控 元数据管理 用户认证 权限管理 第三方windows客户端 1&#xff1a;系统服务分布图 3台分布式架构…...

「JVM 编译后话」编译器优化技术

后端编译&#xff08;即时编译、提前编译&#xff09;的目标时将字节码翻译成本地机器码&#xff0c;而难点是输出优化质量较高的机器码&#xff1b; 文章目录1. 优化技术概览2. 方法内联&#xff08;Inlining&#xff09;3. 逃逸分析&#xff08;Escape Analysis&#xff09;4…...

【python学习笔记】:输出与输入

01 输出方式 表达式语句、print()函数和使用文件对象的write()方法。 02 输出形式 格式化输出str.format()函数、转成字符串可以使用repr()或str()函数来实现。 (1)repr()&#xff1a;产生一个解释器易读的表达形式&#xff0c;便于字符串的拼接。 例&#xff1a;输出平方与…...

汽车电子社区交流宣传

http://t.csdn.cn/VSLO0http://t.csdn.cn/VSLO0 当今的汽车行业已经进入了数字化时代&#xff0c;汽车电子软件的开发变得越来越重要。在这个领域&#xff0c;开发者们需要应对各种挑战&#xff0c;包括复杂的硬件和软件交互、高效的嵌入式编程和安全性要求。为了帮助汽车电子…...

String、StringBuilder 和 StringBuffer 详解

碎碎念 这是一道老生常谈的问题了&#xff0c;字符串是不仅是 Java 中非常重要的一个对象&#xff0c;它在其他语言中也存在。比如 C、Visual Basic、C# 等。字符串使用 String 来表示&#xff0c;字符串一旦被创建出来就不会被修改&#xff0c;当你想修改StringBuffer 或者是 …...

windows服务器上传文件解决方案

1.说明 1.如果上传到linux系统&#xff0c;通常使用ftp相关技术&#xff0c;配合windows端的ftp客户端工具比如FileZilla等进行大文件的上传工作。 2.同理windows服务器也可以开启ftp服务用来传输大文件。 3.本文介绍偷懒方式&#xff08;常规是开启windows的ftp服务&#xff0…...

Android Studio翻译插件推介(Translation)

前言 Android Studio翻译插件适合英语水平不太好的程序员&#xff08;比如&#xff1a;我&#xff09;&#xff0c;最常用的翻译插件Translation和AndroidLocalize&#xff0c;本文主要讲解Translation&#xff0c;亲测可用。 先看看效果&#xff1a;这里是Android的API,任意选…...

DNS,DNS污染劫持,DNS加密

1. DNS&#xff08;Domain Name System&#xff09;DNS&#xff08;Domain Name System&#xff09;&#xff0c; 也叫网域名称系统&#xff0c;是互联网的一项服务。它实质上是一个 域名 和 IP 相互映射的分布式数据库.DNS&#xff08;Domain Name Server&#xff0c;域名服务…...

【Python】如何度量优秀代码——静态分析工具

静态分析工具背景有哪些静态分析工具呢度量Python代码的静态属性度量Python的生态系统代码的坏味道在类层面上在方法层面上结语背景 静态代码分析工具能够提炼出丰富的代码静态属性信息&#xff0c;这使得程序员可以对代码的复杂性、可修改性和可读性有进一步的了解。 有哪些…...

如何评估Android测试自动化成熟度:从入门到精通的完整指南

如何评估Android测试自动化成熟度&#xff1a;从入门到精通的完整指南 【免费下载链接】testing-samples A collection of samples demonstrating different frameworks and techniques for automated testing 项目地址: https://gitcode.com/gh_mirrors/te/testing-samples …...

Qwen3-TTS在VSCode中的开发调试技巧:从语音克隆到音色设计

Qwen3-TTS在VSCode中的开发调试技巧&#xff1a;从语音克隆到音色设计 1. 开发环境搭建 1.1 Python虚拟环境配置 在VSCode中开发Qwen3-TTS项目&#xff0c;首先需要配置合适的Python环境。推荐使用conda或venv创建独立的虚拟环境&#xff0c;避免依赖冲突。 # 使用conda创建…...

面向 LLM 的程序设计 4:API 版本化与演进——在「模型会记忆旧文档」前提下的兼容策略

用三句话先说明白 人会照旧说明书办事&#xff0c;模型也一样。 它见过的文档、缓存里的接口描述、网页上没刷新的说明、向量库里还没更新的片段&#xff0c;都可能比真实系统更旧。于是系统已经升级了&#xff0c;它还在用老地址、老字段名、老例子去调用。 给人改流程&#…...

终极指南:如何从零构建Cubism.js自定义数据源适配器

终极指南&#xff1a;如何从零构建Cubism.js自定义数据源适配器 【免费下载链接】cubism Cubism.js: A JavaScript library for time series visualization. 项目地址: https://gitcode.com/gh_mirrors/cu/cubism Cubism.js是一个强大的JavaScript时间序列可视化库&…...

作品被篡改署名?三步维权指南

您好&#xff0c;我理解您遇到了作品被他人擅自修改并署名为“悟空”的情况&#xff0c;这确实是一件令人非常气愤和不快的事情。首先&#xff0c;请务必保持冷静。愤怒是正常的&#xff0c;但清晰的行动才能更好地维护您的权益。针对这种情况&#xff0c;您可以按照以下步骤来…...

OpenClaw 太难装了?试试 LangTARS:一行命令部署 + WebUI 管理面板,还能接入 Dify/Coze/nn??

1. 什么是 Apache SeaTunnel&#xff1f; Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题&#xff0c;如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...

2026届最火的五大降AI率方案推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 得从语言、逻辑以及细节这三方面着手&#xff0c;来降低AI生成内容所留下的痕迹。在语言方面…...

论文不同章节降AI策略不同:分章节精准处理的完整教程

论文不同章节降AI策略不同&#xff1a;分章节精准处理的完整教程 上周室友第一次用降AI工具&#xff0c;操作错了好几步&#xff0c;差点浪费机会。觉得有必要写一篇详细教程。 我用的是嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;&#xff0c;4.8元一篇&#xff0c…...

Kazumi插件扩展完全指南:从安装到高级配置

Kazumi插件扩展完全指南&#xff1a;从安装到高级配置 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP&#xff0c;支持流媒体在线观看&#xff0c;支持弹幕&#xff0c;支持实时超分辨率。 项目地址: https://gitcode.com/gh_mirrors/ka/Kazumi Kazumi作为一款基…...

WorkBuddy 实用培训课程内容体系:从入门到精通的“数字员工”养成指南

构建的 WorkBuddy&#xff08;基于OpenClaw架构&#xff09;实用培训课程内容体系。本体系深度解构了OpenClaw的技术原理、生态应用与安全实践&#xff0c;旨在培养具备专业能力的“数字员工”管理者与开发者。课程前言&#xff1a;AI 范式转移——从“建议者”到“执行者”在人…...