c++ - 使用不同线程访问不同子数组而不同步是否安全?

标签 c++ arrays pthreads parallel-processing

如果我有 10 个线程和一个由 10 个子数组组成的数组,那么让每个线程在不同的子数组上工作是否安全?即线程[0]对数组[0]执行操作,线程[1]对数组[1]执行操作,等等。或者这样做不安全吗?如果它是 vector 或数组(或任何与此相关的数据集),会有什么不同吗?

最佳答案

是的,你很安全。只要没有任何线程修改资源,其他线程就可以在没有防护或同步的情况下访问资源,那么您就是安全的。内存地址是否非常接近并不重要;邻近性不起作用。重要的是是否存在共享,如果存在,任何线程是否会修改共享资源。

关于c++ - 使用不同线程访问不同子数组而不同步是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9404936/

相关文章:

c++ - LowLevelKeyboardProc 和 KeyboardProc

c++ - 通过一次调用 new 运算符来批量分配对象?

gcc - 当进程接收到信号时线程会发生什么?

C++,pthread 执行什么和/或在哪里执行?

c++ - 如何使用 clang/LLVM 库编译 C++ 代码?

PHP - 每年更新数据。 -工艺建议-

c - 如何检查位图数组中是否至少有一个元素不为零?

php - 如何导出每个键值对位于单独行中的 PHP 数组?

C中线程不能是 "paused"吗?

c++ - 如何在 C++ 中将 4 个字节连接到 8 个字节?