2017-02-22 63 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

是的,我指的是這個例子。但是我仍然沒有得到答案:當一個線程被分離時,該線程的生命週期是多少。一旦執行結束,釋放分離線程的內存是否會被釋放直到進程的整個生命週期? –