delete釋放指針 進(jìn)程退出時(shí)有沒有必要進(jìn)行一些清理工作?
進(jìn)程退出時(shí)有沒有必要進(jìn)行一些清理工作?我們不知道系統(tǒng)的內(nèi)部行為,所以手動(dòng)清理是一個(gè)很好的編程習(xí)慣,正如您所提到的,內(nèi)核句柄、文件句柄、Winsock等等,對(duì)于程序中打開的對(duì)象,系統(tǒng)必須保存信息,并在進(jìn)
進(jìn)程退出時(shí)有沒有必要進(jìn)行一些清理工作?
我們不知道系統(tǒng)的內(nèi)部行為,所以手動(dòng)清理是一個(gè)很好的編程習(xí)慣,正如您所提到的,內(nèi)核句柄、文件句柄、Winsock等等,對(duì)于程序中打開的對(duì)象,系統(tǒng)必須保存信息,并在進(jìn)程退出后幫助您釋放。然而,一般來說,我們并不知道系統(tǒng)的內(nèi)部行為。如果文件是以緩沖區(qū)模式寫入的,并且進(jìn)程調(diào)用ExitProcess退出,則不能保證系統(tǒng)將寫入緩沖區(qū)硬盤的內(nèi)容。
再舉一個(gè)例子,當(dāng)網(wǎng)絡(luò)通信中涉及到安全信息時(shí),必須記住清除緩沖區(qū)以避免泄漏。另外,與C語言中的malloc函數(shù)一樣,雖然程序退出后應(yīng)用的內(nèi)存會(huì)被系統(tǒng)回收,但當(dāng)多個(gè)進(jìn)程運(yùn)行時(shí),可能內(nèi)存不足。因此,有些物品不用時(shí),應(yīng)及時(shí)清理。當(dāng)然,這只是個(gè)人觀點(diǎn),但手動(dòng)清理是一個(gè)很好的編程習(xí)慣。
電腦里面的進(jìn)程該刪除那些不該刪除那些?
首先,進(jìn)程只能終止,不能刪除。其次,由于每臺(tái)計(jì)算機(jī)的軟硬件環(huán)境并不完全一致,沒有一個(gè)通用的判斷標(biāo)準(zhǔn)來判斷哪個(gè)進(jìn)程有問題。而一旦出現(xiàn)問題的進(jìn)程,僅僅終止進(jìn)程并不能完全解決問題,還需要?jiǎng)h除相應(yīng)的程序文件和注冊(cè)表項(xiàng)、計(jì)劃任務(wù)項(xiàng)或系統(tǒng)服務(wù)項(xiàng)。最后,終止進(jìn)程可以使用系統(tǒng)自己的任務(wù)管理器,但是對(duì)于頑固的進(jìn)程,可以使用諸如ice blade之類的輔助程序來終止。