它是安全的,例如做:多線程調用相同的函數是否安全?
void AddTwo(int &num)
{
num +=2;
}
void ThreadProc(lpvoid arg)
{
AddTwo((int)arg);
}
難道是安全的這如果4個線程是在同一時間做這種情況發生?謝謝
它是安全的,例如做:多線程調用相同的函數是否安全?
void AddTwo(int &num)
{
num +=2;
}
void ThreadProc(lpvoid arg)
{
AddTwo((int)arg);
}
難道是安全的這如果4個線程是在同一時間做這種情況發生?謝謝
從不同的線程調用相同的函數沒有任何錯誤。如果你想確保你的變量是一致的,建議提供線程同步機制來防止崩潰和週轉情況。
安全取決於lpvoid arg的值。
如果所有參數彼此不同,則安全,否則不安全。
爲了使函數調用安全,請查看'互斥量'。
真正的答案是 - 這取決於...
在大多數平臺上,是的,它是安全的,只要你沒有做任何事情在其他人所說的功能是不安全的。這很容易搞砸,所以要小心!
在其他平臺上,它絕對是不安全的。例如,由於硬件限制,大多數較小型PIC微控制器的C編譯器都無法支持該編譯器。
一般來說,是的,但它是安全的。
作爲一般的經驗法則,如果函數不改變任何公共資源(例如相同的存儲器位置),則該函數是可重入的。如果是這樣,你需要使用某種類似的互斥機制或信號量的同步機制。
'arg'從哪裏來? – 2010-07-05 05:06:47
我只是做了這個作爲一個例子,我知道這不是'正確' – jmasterx 2010-07-05 05:09:30