次のコード スニペットを検討してください。
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;
}
ミューテックス、レースコンディションなどの一般的な理論を知っています。
スレッドが開始された後 (つまり、run() の呼び出し後) に Set が常に呼び出されると仮定すると、ThreadA と ThreadB の実行で "myVariable" を所有するスレッドはどれですか??
このようなシナリオで、メイン スレッドと QThread はどのようにリソースを共有しますか??
QThread (つまり、ThreadA と ThreadB) およびその主なアプリケーション内での myVariable の範囲と有効性は何ですか??
ありがとう、ヴィシュヌ。