1. 程式人生 > >多線程調用同一個方法,局部變量會共享嗎

多線程調用同一個方法,局部變量會共享嗎

多線程 判斷 指向 如何 多個 tro 同步 擔心 輸出

對於一個局部變量應該是各線程獨立的,一個線程不會改變另一個線程的臨時變量。

多線程時, 幾個線程間輸出信息是交叉在一起的, 但你又沒有區分是哪個線程輸出的, 所以你自己就誤認為是同一個線程輸出的東西被改變了. 實際上是你自己的理解錯誤.

所有線程都用cout輸出內容,你如何判斷哪些內容是哪個線程輸出的,
而且cout是一個全局變量,多線程同時訪問需要加鎖,否則會出現一些莫名其妙的情況

結論: 局部變量是不會被修改的,而全局變量則很容易就被修改了,而你卻還不知道。

//////////////////////////////////////////////////////////////////////////

多線程中,不同線程調用同一個函數,使用的是同一份代碼還是不同線程用函數的多個拷貝?為什麽?即每個線程用一個拷貝函數。

不同線程中調用函數的局部變量是否指向的都指向同一個?

每個線程有自己的堆棧,所以調用函數時對函數的相關參數也是各有一份的,不用擔心;只是全局變量需要考慮同步。

多線程調用同一個方法,局部變量會共享嗎