多線程知識(shí)

進(jìn)程:運(yùn)行過程中的程序,具有一定獨(dú)立功能,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位

線程:是進(jìn)程的基本執(zhí)行單元,一個(gè)進(jìn)程的所有任務(wù)都在線程中執(zhí)行,進(jìn)程至少有一條線程,程序默認(rèn)會(huì)開啟一條線程,這條線程被稱為主線程或UI線程

多線程優(yōu)缺點(diǎn):

優(yōu)點(diǎn):1、提高資源利用率

? ? ? ? ? ?2、提高程序執(zhí)行率?

? ? ? ? ? ?3、線程上的任務(wù)執(zhí)行完后,線程會(huì)自動(dòng)銷毀

缺點(diǎn):1、開辟線程需要占用一定的內(nèi)存空間

? ? ? ? ? ?2、線程越多,cpu調(diào)度的開銷越大

多線程原理:

多線程的并發(fā)其實(shí)并不是同時(shí)執(zhí)行,而是cpu在不同線程間頻繁切換,達(dá)到同時(shí)的效果

線程和Runloop:

1、Runloop和線程是一一對(duì)應(yīng)的

2、Runloop是來管理線程的,當(dāng)線程的Runloop被開啟后,線程執(zhí)行完任務(wù)會(huì)休眠,等下次有任務(wù)時(shí)再執(zhí)行任務(wù)

3、線程在第一次創(chuàng)建時(shí)被開啟,在線程結(jié)束時(shí)銷毀

4、Runloop在子線程中默認(rèn)不開啟,需要手動(dòng)開啟

線程池:

線程池是一種"池化"的線程使用模式,線程的創(chuàng)建、銷毀、調(diào)度都有一定的開銷,通過預(yù)先創(chuàng)建一定數(shù)量的線程,讓這些線程處于就緒狀態(tài)來提高系統(tǒng)響應(yīng)速度,在線程使用完后歸還到線程池達(dá)到重復(fù)利用的目的,從而降低系統(tǒng)資源的消耗、提高響應(yīng)速度,以及增加線程的可管理性

線程的生命周期:

1、新建:實(shí)例化線程對(duì)象

2、就緒:調(diào)用start將線程加入可調(diào)度線程池,等待CPU調(diào)度(分配時(shí)間片)

3、運(yùn)行:CPU從可調(diào)度線程池中分配時(shí)間片給線程,線程在未執(zhí)行完畢情況下可能會(huì)在就緒運(yùn)行之間不斷切換,程序員無(wú)法干預(yù)

4、阻塞:線程有時(shí)會(huì)因?yàn)橥?、鎖、sleep等方式阻塞

5、死亡:分為正常死亡(線程結(jié)束)和非正常死亡(線程終止)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容