多線程

同步鎖,又叫互斥鎖,@synchronized(self)

自旋鎖:atomic:原子屬性,多線程環(huán)境下,只有一個線程可以對它賦值,讀取沒有線程限制

nonatomic:非原子屬性,讀取沒有限制

線程安全:在多個線程進(jìn)行讀寫操作時,仍然能夠保證數(shù)據(jù)的正確

幾乎所有的UIKit類都是非線程安全的

所有的mutable開頭的類都不是線程安全的


weak:弱引用,如果對象銷毀,會指向0x0地址

assign:基本數(shù)據(jù)類型,如果使用assign指針指向?qū)ο?,對象釋放時,會指向原來對象的地址,發(fā)生野指針錯誤。


消息循環(huán):循環(huán)開始,創(chuàng)建對象,創(chuàng)建自動釋放池,執(zhí)行事件,傾倒自動釋放池,一次循環(huán)結(jié)束。

線程上運(yùn)行著消息循環(huán),根據(jù)消息的不同會有不同的處理方法。

消息循環(huán)包含輸入源和定時源。輸入源包含鍵盤、鼠標(biāo)、NSPort等等。

消息循環(huán)的默認(rèn)模式是KCFRunLoopDefaultMode,當(dāng)拖動界面的時候,模式變成UITrackingRunLoopMode。添加定時器的時候,會有一個模式。

只有當(dāng)定時器的模式和消息循環(huán)的模式匹配的時候,定時器才能運(yùn)行在消息循環(huán)中。

定時器的NSRunLoopCommonModes是一個模式集合。


同步異步:是否開啟新線程

并發(fā)串行:隊(duì)列中任務(wù)是同時執(zhí)行還是串行執(zhí)行


主隊(duì)列同步:死鎖

主隊(duì)列異步:不開啟新線程,串行執(zhí)行任務(wù)

串行隊(duì)列同步:不開啟新線程,串行執(zhí)行任務(wù)

串行隊(duì)列異步:開啟一個新線程,串行執(zhí)行任務(wù)

并發(fā)隊(duì)列同步:不開啟新線程,串行執(zhí)行任務(wù)

并發(fā)隊(duì)列異步:開啟多個新線程,并發(fā)執(zhí)行任務(wù)

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

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

  • 多線程的四種解決方案:pthread,NSThread,GCD,NSOperation 一、多線程的基本概念進(jìn)程:...
    陽明AI閱讀 547評論 0 3
  • 系列文章: 多線程 多線程 pthread、NSThread 多線程 GCD 多線程 NSOperation 多線...
    林安530閱讀 445評論 0 0
  • 目錄一、GCD的兩對兒主要概念及它們的六種組合? 1、dispatch_sync和dispatch_async? ...
    意一ineyee閱讀 1,614評論 0 0
  • 本文主要是分享iOS多線程的相關(guān)內(nèi)容,為了更系統(tǒng)的講解,將分為以下7個方面來展開描述。 多線程的基本概念 線程的狀...
    JasonL閱讀 333評論 0 2
  • 我們總是嚷嚷著,要有萬貫家產(chǎn),要擁有豪華別墅,要有美女在懷,為了擁有自己想要的,我們拼命努力,每天熬夜到一兩點(diǎn),整...
    潘梓曦閱讀 4,607評論 2 0

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