2
我在其中一個類中重新實現了新/刪除操作符。現在我正在使我的代碼成爲多線程的,並且希望瞭解這些運算符是否也需要成爲線程安全的。我已經閱讀過某些地方,Visual Studio中的默認new/delete操作符是線程安全的。但是它適用於我的類的自定義新/刪除操作符嗎?如果有多個執行線程使用C++中類級別新刪除操作符的線程安全性
void* MyClass::operator new(std::size_t count)
{
void* memo = ::operator new(count);
printf("Allocated base\n");
return memo;
}
這取決於你的'new' /'delete'實現。如果您只是在您的示例中調用標準運算符,則它已經是線程安全的。如果您創建自己的內存管理器,則必須確保它在多線程環境中正常工作。 – Ari0nhh
對於Unix,對於分叉和線程,我們必須始終考慮[this](http://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-using-them)。 – UKMonkey