C++ join()是否释放了分配的内存?-C++;11线

C++ join()是否释放了分配的内存?-C++;11线,c++,c++11,C++,C++11,假设我使用C++11线程。线程将运行执行malloc的函数。之后,我将使用join而不使用free(内存)。所以,我杀了线。预计内存将自动释放 不,不是。只有在整个应用程序终止后,才会释放内存。使用多个线程(与进程相反)的全部好处是,它们共享相同的内存,因此它们共同拥有其中一个线程中分配的所有内存。如果是这种情况,则不可能编写正常的代码。您必须仔细跟踪哪个线程拥有哪些对象,并且在完成分配的所有任务之前无法终止线程。那会使图书馆设计,嗯,有趣。

假设我使用
C++11线程
。线程将运行执行
malloc
的函数。之后,我将使用
join
而不使用
free
(内存)。所以,我杀了线。预计内存将自动释放

不,不是。只有在整个应用程序终止后,才会释放内存。使用多个线程(与进程相反)的全部好处是,它们共享相同的内存,因此它们共同拥有其中一个线程中分配的所有内存。

如果是这种情况,则不可能编写正常的代码。您必须仔细跟踪哪个线程拥有哪些对象,并且在完成分配的所有任务之前无法终止线程。那会使图书馆设计,嗯,有趣。