作者tas72732002 (蔥頭)
看板PHP
標題[請益] 全域變數存取問題
時間Thu Sep 13 08:09:40 2012
請問一下
如果程式中會執行function a 與 function b , a 與 b function
都會存取一個全域變數 c , 程式如下:
var c = 0 ; //為全域變數
function a()
c=c-1;
}
function b()
{
c=c+5;
}
b();
假設 a() [需要花費比較久的時間完成], b()在a()未完成時,已經跑完,
此時呈現的結果會不會是
c=0+5; //b()已經跑完
當a取得c變數的時候 c=5, 所以最後結果是 c=4;
php會發生這種情況嗎???javascript會發生這種情況嗎??
預期的結果應該是 a() 執行完 c=-1 , 最後結果為 c=-1+5
這在其他程式應該也會碰到.這類問題有什麼名詞嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.235.250
→ gpmm:code 都寫出來了,怎麼不自己實測一下 o_Oa" 09/13 09:14
推 chchwy:關鍵字 race condition 09/13 10:26
→ MOONRAKER:最近才在ajax碰到活生生的教訓︰如果你的查詢特別大,大 09/14 01:13
→ MOONRAKER:到你不耐煩調整選項重送一次,那麼舊的查詢有可能在新查 09/14 01:14
→ MOONRAKER:詢完成後又跟著傳回來…後來的sol'n是查詢時送出時間碼 09/14 01:16
→ MOONRAKER:放在json裡一起送回來,並檢查是否符合… 09/14 01:16