bug-JavaArrays.fill()隐藏问题

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

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

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

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

底层原因

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

正确的写法应该是这样的

相关推荐
鹓于14 小时前
开发Bug——U盘插入断网
bug
今天又在摸鱼2 天前
bug日记
bug
大Mod_abfun2 天前
24H2动态壁纸无法正常嵌入(针对vb.net的紧急加更)
bug·桌面壁纸·24h2
十步杀一人_千里不留行6 天前
和 AI 一起修 Bug 心得体会
人工智能·bug·ai编程
花王江不语6 天前
改bug的一些体会
bug
zimoyin6 天前
Linux 程序使用 STDOUT 打印日志导致程序“假死”?一次线上 Bug 的深度排查与解决
linux·运维·bug
城下秋草7 天前
趣谈Bug -500英里邮件问题
bug
初圣魔门首席弟子7 天前
c++中this指针使用bug
前端·c++·bug
张较瘦_7 天前
[论文阅读] AI + 软件工程(Debug)| 告别 “猜 bug”:TreeMind 用 LLM+MCTS 破解 Android 不完整报告复现难题
论文阅读·人工智能·bug
数字芯片实验室7 天前
芯片验证:发现BUG是件好事
bug