在我的计划,我处理新主题与是否需要分离pthread以防止内存泄漏?
pthread_t thread;
pthread_create(&thread, NULL,
c->someFunction, (void *) fd); //where fd is ID of the thread
的问题是很简单 - 如果我只是让someFunction
完成,是它需要再C++
到例如某事物join
或其他任何东西,prevenet memory leaks
或内存是否自动释放??
删除我的答案,你的更好。 – BoBTFish
因此,当我想退出应用程序时,是否需要遍历创建线程和'deatch'的'vector'(最终在完成其工作后“分离”某个线程)?我问,因为我不确定是否理解'join'和'detach'之间的区别。但在我看来,我可以肯定,在我打电话之后,“detach”会终止线程,对吧? – Dworza
如果您将线程分离,线程完成工作时线程的资源将被释放。Join用于连接到一个线程(如果你在main中的某个线程上进行连接,main将不会执行直到线程被终止并且其资源被释放)。 'join'和'detach'用于不同的目的。但它们都释放资源.Detach不是用于终止线程,线程将自行终止.Detached意味着没有人正在等待线程终止。 (就像在加入,有人正在等待线程终止,因此它可以加入 –