我有多線程程序。我有我的應用程序的設計如下:線程刪除設計
假設一個是主線程,其他是從線程。主線程跟蹤所有的從線程ID。在其中一個應用場景(其中一個場景是正常關閉應用程序)期間,我想從主線程中刪除從屬線程。 這裏的從屬線程可能正在執行,即無論是在睡眠模式還是做一些我無法停止動作的動作。所以我想從主線程中刪除我內部存儲的線程ID。
附加信息: 刪除時,我不應該等待線程當前動作完成,因爲它可能需要很長時間,因爲我正在從數據庫中讀取並在線程中採取一些操作,以防恩惠關閉,我不應該等待採取行動完成,因爲它可能需要時間。
如果我強制刪除一個線程怎麼會有資源泄漏?
以上的設計是好的,或有任何流量或任何方式,我們可以改進設計。
謝謝!
正如你所提到的,如果我們強行殺死一個線程會有資源泄漏,你可以舉一個例子說明如何有內存泄漏? – venkysmarty
最明顯的是爲堆棧分配的內存。如果強制終止線程,正在運行的函數將無法返回,並且永遠不會釋放內存。在其他情況下,諸如堆內存,套接字,文件句柄之類的東西將無法正確釋放,因爲您沒有給它們這樣的機會。 – JosephH