相同點(diǎn):進(jìn)程和線程都是有操作系統(tǒng)所提供的程序運(yùn)行的基本單元厉萝,系統(tǒng)利用該基本單元實(shí)現(xiàn)系統(tǒng)對(duì)應(yīng)用程序的并發(fā)性狰腌。
不同點(diǎn):
1、進(jìn)程和線程的主要差別在于他們是不同的操作系統(tǒng)資源管理方式。
2剥哑、進(jìn)程有獨(dú)立的地址空間笤妙,一個(gè)進(jìn)程crash后冒掌,在保護(hù)模式下不會(huì)對(duì)其他進(jìn)程產(chǎn)生影響。
3蹲盘、而線程只是一個(gè)進(jìn)程中的不同執(zhí)行路徑股毫。線程有自己的堆棧和局部變量,但線程之間沒有單獨(dú)的地址空間召衔。一個(gè)線程crash就等于整個(gè)進(jìn)程crash
4铃诬、所以多進(jìn)程的程序比多線程的程序健壯,但在進(jìn)程切換時(shí)苍凛,耗費(fèi)資源較大趣席,效率要差一些。但對(duì)于一些要求同時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作醇蝴,只能用線程宣肚,不能用進(jìn)程。
多線程在實(shí)際開發(fā)中有哪些作用悠栓?
1霉涨、使用單例模式時(shí)按价,可以使用GCD
2、耗時(shí)操作放入子線程處理嵌纲,完成后回主線程顯示
3俘枫、從數(shù)據(jù)庫讀取大量數(shù)據(jù),可開辟子線程操作
4逮走、處理音頻鸠蚪、視頻數(shù)據(jù)時(shí),在子線程處理
5师溅、數(shù)據(jù)同步操作茅信,如百度云,可在子線程進(jìn)入后臺(tái)后開始同步