Threads and GCD

在后臺(tái)邑茄,我們的app其實(shí)是在同一時(shí)間內(nèi)運(yùn)行著多種集合的命令指示,也就是說這個(gè)app可以同時(shí)使用2個(gè)或者3個(gè)cpu中心峭范。每一個(gè)cpu都能獨(dú)立的完成自己的工作径玖,這也大大提升了app的性能。這種工作原理就叫做threads纪挎,它有以下幾點(diǎn)重要的附加條件(provisos):

  1. threads執(zhí)行你所給它的代碼期贫,它并不是隨機(jī)的從每一個(gè)viewDidLoad()找?guī)仔写a來執(zhí)行。這也就是說异袄,系統(tǒng)是默認(rèn)只使用一個(gè)cpu來執(zhí)行代碼的通砍,因?yàn)槲覀儧]有創(chuàng)建給其他cpu執(zhí)行的threads。
  2. 所有的user interface的工作都必須發(fā)生在main thread中烤蜕,main thread也就是我們程序建立的初始thread封孙。如果你想嘗試在其他thread中執(zhí)行這些代碼,那結(jié)果也許會(huì)成功讽营,也許會(huì)失敗虎忌,也許會(huì)誘發(fā)一些出人意料的問題,或者干脆它會(huì)崩潰橱鹏。
  3. 我們無法控制什么時(shí)候thread會(huì)被執(zhí)行膜蠢,或者以什么樣的順序來執(zhí)行。我們只是創(chuàng)建threads莉兰,把它們交給系統(tǒng)挑围,讓系統(tǒng)來以最優(yōu)的方式去決定什么時(shí)候,以什么樣的順序來執(zhí)行糖荒。
  4. 因?yàn)槲覀儫o法控制執(zhí)行順序杉辙,我們必須要十分警惕的確保每次只有一個(gè)thread在更改我們的數(shù)據(jù)。

大體來講寂嘉,如果你在訪問遠(yuǎn)程資源奏瞬,那應(yīng)該使用后臺(tái)thread(任何一個(gè)不是main
thread的thread)。如果你在執(zhí)行一些緩慢的代碼泉孩,那也用后臺(tái)thread硼端;或者有一些可以平行執(zhí)行的代碼,比如要給100張照片加濾鏡寓搬,那就使用若干個(gè)后臺(tái)threads來執(zhí)行他們珍昨。

這里說一下GCD(Grand Central Dispatch),GCD的能力就是讓我們不用再去考慮創(chuàng)建和使用多線程(multithreading)的麻煩,我們不用去考慮如何創(chuàng)建或者銷毀線程句喷,不用去考慮我們是否創(chuàng)建了最佳數(shù)量的線程镣典,GCD自動(dòng)的給我們創(chuàng)建線程,并且會(huì)以最佳的方式來創(chuàng)建執(zhí)行唾琼。
GCD automatically handles thread creation and management, automatically balances based on available system resources, and automatically factors in Quality of Service to ensure your code runs as efficiently as possible.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末兄春,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子锡溯,更是在濱河造成了極大的恐慌赶舆,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祭饭,死亡現(xiàn)場離奇詭異芜茵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)倡蝙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門九串,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寺鸥,你說我怎么就攤上這事猪钮。” “怎么了胆建?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵躬贡,是天一觀的道長。 經(jīng)常有香客問我眼坏,道長拂玻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任宰译,我火速辦了婚禮檐蚜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沿侈。我一直安慰自己闯第,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布缀拭。 她就那樣靜靜地躺著咳短,像睡著了一般填帽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上咙好,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天篡腌,我揣著相機(jī)與錄音,去河邊找鬼勾效。 笑死嘹悼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的层宫。 我是一名探鬼主播杨伙,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼萌腿!你這毒婦竟也來了限匣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤毁菱,失蹤者是張志新(化名)和其女友劉穎膛腐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鼎俘,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哲身,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贸伐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勘天。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捉邢,靈堂內(nèi)的尸體忽然破棺而出脯丝,到底是詐尸還是另有隱情,我是刑警寧澤伏伐,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布宠进,位于F島的核電站,受9級(jí)特大地震影響藐翎,放射性物質(zhì)發(fā)生泄漏材蹬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一吝镣、第九天 我趴在偏房一處隱蔽的房頂上張望堤器。 院中可真熱鬧,春花似錦末贾、人聲如沸闸溃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辉川。三九已至表蝙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乓旗,已是汗流浹背府蛇。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寸齐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓抄谐,卻偏偏與公主長得像渺鹦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蛹含,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容