bug-JavaArrays.fill()隐藏问题

embedded/2024/10/30 17:52:09/

在这里插入图片描述对于一个数组想要初始一样的值,我们经常会这样编写。全部进行复制1,但是你有没有考虑过,如果是一个对象数组呢?

如果也是new Thread,这个是有五个线程,还是一个线程?
在这里插入图片描述

这是我在今天做哲学家问题时候遇到的
在这里插入图片描述

最后dug后返现只有一个信号量。

底层原因

可以发现Arrays.fill() 本质就是等于复制,所有的a都是共享的一个val,那么也就不难理解了,为什么会出现这样的问题。你只是new了一个线程,这个线程数组里面的线程都指向了这个地址。
在这里插入图片描述

正确的写法应该是这样的
在这里插入图片描述


http://www.ppmy.cn/embedded/133665.html

相关文章

python通过translate库实现中英文翻译

功能介绍 translate库,可以轻松实现中英文的翻译。 使用pip直接安装translate库:pip install translate translate库github地址 命令行直接调用 当使用pip安装以后,就得到了translate-cli的命令,此时可以通过该命令直接实现翻…

【Python爬虫实战】多进程结合 BeautifulSoup 与 Scrapy 构建爬虫项目

#1024程序员节|征文# 🌈个人主页:易辰君-CSDN博客 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html ​ 前言 在大数据时代,爬虫技术是获取和处理网络数据的利器。面对需要处理大…

安宝特案例 | AR技术在院外心脏骤停急救中的革命性应用

00 案例背景 在院外心脏骤停 (OHCA) 的突发救援中,时间与效率直接决定着患者的生命。传统急救模式下,急救人员常通过视频或电话与医院医生进行沟通,以描述患者状况并依照指令行动。然而,这种信息传递方式往往因信息不完整或传递延…

[论文阅读] GPT-4 Technical Report

启发: 读了吗,如读,不愧是CloseAI Abstract GPT-4 是一个基于 Transformer 的模型,经过预先训练,用于预测文档中的下一个标记。训练后的对齐过程可以提高事实性和对期望行为的依从性方面的表现。该项目的一个核心组成…

Qt Splash 与登录界面窗口

Qt Splash 与登录窗口 开发工具&#xff1a;VS2013 QT5.8 1、实例功能概述&#xff1a; 2、对话框界面设计与类定义 &#xff08;1&#xff09;QDlgLogin.h 头文件中QDlgLogin 类的定义&#xff1a; QDlgLogin.h 头文件&#xff1a; #pragma once#include <QDialog>…

探索国际数据空间(IDS)架构(下)

在上一篇文章中&#xff0c;我们介绍了国际数据空间&#xff08;IDS&#xff09;的基本概念、架构分层和核心组件。今天&#xff0c;我们将继续深入探讨 IDS 的安全、认证和治理机制&#xff0c;以及它在实际应用中的价值和挑战。 参考文章&#xff1a;国际数据空间&#xff08…

gitblit 学习-hook功能

hook功能 hook是什么 git hooks是git提供的&#xff0c;在发生特定事件时&#xff0c;允许用户添加自定义代码&#xff08;或操作&#xff09;的方式。 就像Vue中组件的生命周期钩子&#xff0c;比如&#xff0c;你想在vue组件创建后输出一行log, 你可能会这么写 有什么用&a…

HTML入门教程4:HTML属性

HTML属性概述 HTML属性是附加在HTML标签上的额外信息&#xff0c;它们以键值对的形式出现&#xff0c;并放置在标签的起始部分内。这些属性为浏览器提供了额外的指令&#xff0c;以更准确地渲染网页内容。 基本语法 <tagname attribute1"value1" attribute2&qu…