考虑2个线程和一个数组int[] values。第一个线程正在执行: synchronized (values) { values[i] = 58; }
当第二个线程正在执行时:
if (values[i] == 58) { }
在synchronized区之外。
如果第一个线程先执行values[i]= 58,是否可以保证第二个线程稍晚执行一次,即使第二个线程在块外if读取,58也可以读取第二个线程values[i]的synchronized?
问题来源:stackoverflow
没有
以这种方式同步不会停止其他线程同时对阵列执行任何操作。但是,将防止其他线程抢占阵列上的锁。
答案来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。