2017-02-22 66 views
-1

我正在阅读有关C++线程。我遇到了一个创建DocumentEditor的例子。在文档编辑器中,无论何时用户打开一个新文档,都会创建一个新线程,并立即分离该线程。detach std ::线程在后台运行

当文档编辑任务完成时,分离的线程将成为deamon线程。

所以我的问题是,如果用户让应用程序打开几天,并继续创建新的文件说他们比他的100个线程数将继续增加?

或者当进程资源不足时,deamons会被销毁?

+0

为什么“threadpool”标签?我没有看到与线程池相关的问题。 – roalz

+0

这是一个关于未命名的特定应用程序的问题。没有人可以回顾你的问题,而无需查看该应用程序。 – knivil

+0

守护线程是什么意思?你有没有看过std :: thread :: detach呢? – rustyx

回答

0

我想你说的是Practical Multithreading这本书。那里的作者只是举了一个线程如何有用以及如何使用分离的例子。

作者不打算覆盖每一个角落的情况。他只是举例说明如何使用分离线程。这取决于你如何处理有限的资源。这就像给你一个M6螺丝钉和一个螺丝刀,然后你决定如何处理它们。您可以将螺丝用于指示灯或计算机,甚至可能会误用,并将其放入M5孔并打碎东西。使用螺丝钉和螺丝刀的背景是不同的,我举一个关于一盏灯的例子并不意味着我解释了一盏灯如何工作,而且是电力消耗,就像多线程的背景一样不同于你如何管理资源。这取决于你,并取决于你的应用程序的特殊情况。

+0

是的,我指的是这个例子。但是我仍然没有得到答案:当一个线程被分离时,该线程的生命周期是多少。一旦执行结束,释放分离线程的内存是否会被释放直到进程的整个生命周期? –