对于一个数组想要初始一样的值,我们经常会这样编写。全部进行复制1,但是你有没有考虑过,如果是一个对象数组呢?
如果也是new Thread,这个是有五个线程,还是一个线程?
这是我在今天做哲学家问题时候遇到的
最后dug后返现只有一个信号量。
可以发现Arrays.fill() 本质就是等于复制,所有的a都是共享的一个val,那么也就不难理解了,为什么会出现这样的问题。你只是new了一个线程,这个线程数组里面的线程都指向了这个地址。
正确的写法应该是这样的
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » bug-JavaArrays.fill()隐藏问题
微信公众账号
微信扫一扫加关注
发表评论 取消回复