在C++中,當你在靜態成員函數中有局部變量時,這是否意味着這些局部變量也是隱式靜態的或者它們真的是本地變量?靜態成員函數和線程安全
例如:
static void myClass::somefunc(int someint)
{
int myint = someint; // is myint really a local variable or does it change due to the static qualifier at function level?
}
此外,運行此功能的線程池不同的線程,並敏需要用鎖來保護?假定傳遞給它的所有值都是不同的並且彼此沒有關係。
編輯:謝謝你的答案。現在如果我通過了boost::shared_ptr<T>
,知道這個對象不會被另一個線程同時使用,那該怎麼辦? (不知道是否真的可以保證,或者你可以嗎?)
我想一個原始的ptr通過,需要一些保護,如果它被全部使用?
你被靜電有兩種完全不同的含義混淆。你並不孤單,這也許是爲什麼獨立函數中的靜態現在已被棄用的原因。 – Suma 2010-12-22 15:17:19