比如我有一个10个元素的int型数组,线程A修改下标为0的元素,线程B修改下标为5的元素。
这样会不会引起线程安全的问题呢?
我个人认为不会出现问题,但是是危险操作。
比如我有一个10个元素的int型数组,线程A修改下标为0的元素,线程B修改下标为5的元素。
这样会不会引起线程安全的问题呢?
我个人认为不会出现问题,但是是危险操作。
8 回答6.4k 阅读
3 回答2.3k 阅读✓ 已解决
2 回答3.3k 阅读
2 回答3.9k 阅读
3 回答1.7k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
1 回答2.9k 阅读
线程安全对应是的数据争用,按照官方说法是,没有经过happens-Before关系排序的数据争用就会出现 不同步现象。
鉴于你操作的是一个数组的不同部分,多个线程没有同时对同一个数组元素进行读写操作(也就是一个线程读,另一个线程同时写),哪怕没有经过正确的同步,也不会出现数据争用(data race),所以是线程安全的。