c++ 多線程 為什么反復(fù)創(chuàng)建釋放多線程TTHREAD對(duì)象會(huì)引起內(nèi)存溢出?
為什么反復(fù)創(chuàng)建釋放多線程TTHREAD對(duì)象會(huì)引起內(nèi)存溢出?刪除freeonterminate的原因是您已經(jīng)設(shè)置了線程的freeonterminate。這將導(dǎo)致線程對(duì)象在線程完成時(shí)自動(dòng)釋放。結(jié)果,線程對(duì)
為什么反復(fù)創(chuàng)建釋放多線程TTHREAD對(duì)象會(huì)引起內(nèi)存溢出?
刪除freeonterminate的原因是您已經(jīng)設(shè)置了線程的freeonterminate。這將導(dǎo)致線程對(duì)象在線程完成時(shí)自動(dòng)釋放。結(jié)果,線程對(duì)象在主線程中應(yīng)用,但在子線程中釋放。一般的解決方案是在線程完成后手動(dòng)釋放線程對(duì)象。
在寫線程時(shí),我們要遵循一個(gè)基本原則,即線程負(fù)責(zé)釋放線程請(qǐng)求的內(nèi)存,而主線程請(qǐng)求的TThread應(yīng)該在主線程中釋放,而不是freeonterminate。