【发布时间】:2015-08-10 08:20:51
【问题描述】:
我正在开发一个 C++ 程序,在该程序中我正在处理几对数据(数组和矩阵)。由于时间要求,我需要并行处理相应的对,并且我计划为此目的使用 std::threads 。由于他们将调用相同的函数,我需要确保他们永远不会混淆彼此的操作。
我想知道每个线程是否创建自己的调用堆栈,并且不同线程调用的同一个函数的局部函数变量对于调用者来说是唯一的。
此外,所有线程都需要写入同一输出数组的不同部分。即使它们没有写入数组的同一部分,也会导致问题吗?
【问题讨论】:
-
每个线程都是独立的,并且会有自己的堆栈。除非它们使用全局变量或其他共享数据,否则它们不会相互影响
-
我会使用
openmp来实现这一点.. -
感谢您的 cmets。我还考虑使用 openmp,因为它是一种基本的并行化,据我所知,使用 c++ 线程会增加一点时间开销。
标签: c++ multithreading stdthread