bug-JavaArrays.fill()隐藏问题

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

如果也是new Thread,这个是有五个线程,还是一个线程?

这是我在今天做哲学家问题时候遇到的

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

底层原因

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

正确的写法应该是这样的

相关推荐
云和数据.ChenGuang2 小时前
envFrom 是一个 列表类型字段bug
大数据·云原生·容器·kubernetes·云计算·bug
qq_411262422 天前
主要 bug/问题 以及 修改建议:
前端·人工智能·bug·四博智联·doit
大气层煮月亮2 天前
Oracle EBS ERP接口开发 — 修复bug基本流程
bug
技术不支持3 天前
Qt Creator 11.0.3 语法高亮bug问题
java·服务器·数据库·qt·bug
hunteritself3 天前
DeepSeek 论文夺冠,智谱开源 GLM-4.5,OpenAI 学习模式上线!| AI Weekly 7.28-8.3
人工智能·学习·chatgpt·开源·bug·powerpoint
自学也学好编程5 天前
【BUG】nvm无法安装低版本Node.js:The system cannot find the file specified解决方案
node.js·bug
WBingJ7 天前
记录一次薛定谔bug
python·opencv·bug
普宁彭于晏8 天前
uni-app switch(开关选择器) BUG
uni-app·bug
!chen10 天前
Oracle 19.20未知BUG导致oraagent进程内存泄漏
数据库·oracle·bug
SAP龙哥12 天前
SAP在未启用负库存的情况下,库存却出现了负数-补充S4 1709 BUG
运维·bug