gpt4 book ai didi

c++ - 多个 C++ 线程如何在类方法上执行

转载 作者:太空狗 更新时间:2023-10-29 23:23:52 26 4
gpt4 key购买 nike

假设我们有一个像这样的 C++ 类:

class MyClass
{
void processArray( <an array of 255 integers> )
{
int i ;
for (i=0;i<255;i++)
{
// do something with values in the array
}
}
}

和类的一个实例,如:

MyClass myInstance ;

和 2 个调用该实例的 processArray 方法的线程(取决于系统如何执行线程,可能以完全不规则的顺序)。该范围内没有使用互斥锁,因此两个线程都可以进入。

我的问题是 i 发生了什么?每个线程范围是否都有自己的“i”,或者每个进入的线程都会在 for 循环中修改 i,导致 i 一直在奇怪地变化。

最佳答案

i 分配在堆栈上。由于每个线程都有自己独立的堆栈,因此每个线程都有自己的 i 拷贝。

关于c++ - 多个 C++ 线程如何在类方法上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/143850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com