這是我正在研究的項目正在發生的一個非常基本的例子。該場景基本上是一個調用其他函數的函數,這些函數全部鎖定當前線程的資源直到完成。這是一個小例子。鎖定線程直到函數返回的問題?
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時會發生什麼問題?如果這種情況得到擴展會怎麼樣,所以不是三級鎖定,而是4,5,6等等?或者這是鎖定線程和處理函數中的資源的典型方法?