考虑以下代码片段:
class ThreadA::QThread
{
public:
ThreadA()
{
}
void run()
{
myVariable = new int();
*myVariable = 10;
}
void Set(int var)
{
*myVariable = var;
}
private:
int* myVaraible;
}
和以下代码:
class ThreadB::QThread
{
public:
MyThreadB()
{
}
void run()
{
myVariable = 10;
}
void Set(int var)
{
myVariable = var;
}
private:
int myVaraible;
}
我知道互斥锁、竞争条件等的一般理论,
假设 Set 总是在线程启动后调用,(即在调用 run() 之后),在 ThreadA 和 ThreadB 的执行中哪个线程拥有“myVariable”?
这种场景下主线程和QThread是如何共享资源的??
QThread(即ThreadA和ThreadB)及其主要应用程序中myVariable的范围和有效性是什么?
谢谢,毗湿奴。