これは私が取り組んでいるプロジェクトで起こっていることの非常に基本的な例です。このシナリオは基本的に、現在のスレッドのリソースをすべて終了するまで他のすべての関数を呼び出す関数を呼び出す1つの関数です。ここに小さな例があります。関数が返るまでスレッドをロックする際の問題?
void functionA()
{
lockUntilDone();
//do some magic
functionB();
//do some more magic
}
void functionB()
{
lockUntilDone();
//make some more magic
functionC();
}
void functionC()
{
lockUntilDone();
//make a little bit more magic
}
lockUntilDoneは() - 関数は実行だ終了と範囲の外になるまで、現在のスレッドでリソースをロックします。
私はスレッドとプロセスの使用について学び始めています。 functionAの実行中に発生する可能性のある問題は何ですか?このシナリオが拡張されたら、3つのレベルのロックの代わりに4,5,6などになりますか?あるいは、これはスレッドをロックし、関数内のリソースを処理する典型的な方法ですか?