下面是我們使用的示例。可拆卸螺紋結束操作時取消內存分配
class CustomThread
{
public:
CustomThread(const std::wstring &id1)
{
t = new test(id1);
}
~CustomThread();
void startThread() {
std::cout << "Do threading Operation here....." << std::endl;
}
private:
std::wstring id;
test *t;
};
int main()
{
for (int i = 1; i < 100; i++)
{
std::wstring id = L"1";
CustomThread *ct = new CustomThread(id);
boost::thread new_thread;
new_thread = boost::thread(& CustomThread::startThread, ct);
new_thread.detach();
}
// sleep for 100 second - to complete the thread task....
sleep(100);
return 0;
}
我創造了可拆卸線程,我想開始100拆卸螺紋。 在這裏,我們正在做new CustomThread
100次並分配內存。線程完成操作後會自動刪除嗎? 你能指導如何釋放與上面的例子分配的內存?
如果你調用'new',你**必須調用'delete'。這是規則。 – NathanOliver
這是真的。但在這裏,我們不知道何時可拆卸螺紋完成其操作。所以我們什麼時候應該叫刪除? – Neel
C++中的內存管理技巧是永遠不要使用'new'。 – nwp