如果我有 10 个线程和一个由 10 个子数组组成的数组,那么让每个线程在不同的子数组上工作是否安全?即线程[0]对数组[0]执行操作,线程[1]对数组[1]执行操作,等等。或者这样做不安全吗?如果它是 vector 或数组(或任何与此相关的数据集),会有什么不同吗?
最佳答案
是的,你很安全。只要没有任何线程修改资源,其他线程就可以在没有防护或同步的情况下访问资源,那么您就是安全的。内存地址是否非常接近并不重要;邻近性不起作用。重要的是是否存在共享,如果存在,任何线程是否会修改共享资源。
关于c++ - 使用不同线程访问不同子数组而不同步是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9404936/