本章主要內(nèi)容
之前的章節(jié)中,我們通過創(chuàng)建std::thread
對象來對線程進(jìn)行管理。在一些情況下,這種方式不可行了,因為需要在線程的整個生命周期中對其進(jìn)行管理,并根據(jù)硬件來確定線程數(shù)量,等等。理想情況是將代碼劃分為最小塊,再并發(fā)執(zhí)行,之后交給處理器和標(biāo)準(zhǔn)庫,進(jìn)行性能優(yōu)化。
另一種情況是,當(dāng)使用多線程來解決某個問題時,在某個條件達(dá)成的時候,可以提前結(jié)束??赡苁且驗榻Y(jié)果已經(jīng)確定,或者因為產(chǎn)生錯誤,亦或是用戶執(zhí)行終止操作。無論是哪種原因,線程都需要發(fā)送“請停止”請求,放棄任務(wù),清理,然后盡快停止。
本章,我們將了解一下管理線程和任務(wù)的機(jī)制,從自動管理線程數(shù)量和自動管理任務(wù)劃分開始。