Amateur Member
|
看解釋應該是說,副程式在執行時不會更新該參數的值,而是在最後執行完的時候才更新,
比較 call by address 則是在副程式在執行過程中就會更動參數的值。
簡單的說 call by address 下該參數被賦值幾次,該參數的值就會變動幾次。
而call by result無論該參數被賦值幾次,都只會在return 時變動1次。
這個如果在single-thread,兩者是沒有分別的,
但要是在multi-thread 下,call by address 就有可能出現別的thread 讀到該參數過渡時期的值,而不是最後的結果。
|