同步鎖寄疏,又叫互斥鎖,@synchronized(self)
自旋鎖:atomic:原子屬性顶考,多線程環(huán)境下赁还,只有一個線程可以對它賦值,讀取沒有線程限制
nonatomic:非原子屬性驹沿,讀取沒有限制
線程安全:在多個線程進行讀寫操作時,仍然能夠保證數(shù)據(jù)的正確
幾乎所有的UIKit類都是非線程安全的
所有的mutable開頭的類都不是線程安全的
weak:弱引用蹈胡,如果對象銷毀渊季,會指向0x0地址
assign:基本數(shù)據(jù)類型,如果使用assign指針指向?qū)ο蠓=ィ瑢ο筢尫艜r却汉,會指向原來對象的地址,發(fā)生野指針錯誤荷并。
消息循環(huán):循環(huán)開始合砂,創(chuàng)建對象,創(chuàng)建自動釋放池源织,執(zhí)行事件翩伪,傾倒自動釋放池微猖,一次循環(huán)結(jié)束。
線程上運行著消息循環(huán)缘屹,根據(jù)消息的不同會有不同的處理方法凛剥。
消息循環(huán)包含輸入源和定時源。輸入源包含鍵盤轻姿、鼠標(biāo)犁珠、NSPort等等。
消息循環(huán)的默認(rèn)模式是KCFRunLoopDefaultMode互亮,當(dāng)拖動界面的時候犁享,模式變成UITrackingRunLoopMode。添加定時器的時候豹休,會有一個模式饼疙。
只有當(dāng)定時器的模式和消息循環(huán)的模式匹配的時候,定時器才能運行在消息循環(huán)中慕爬。
定時器的NSRunLoopCommonModes是一個模式集合窑眯。
同步異步:是否開啟新線程
并發(fā)串行:隊列中任務(wù)是同時執(zhí)行還是串行執(zhí)行
主隊列同步:死鎖
主隊列異步:不開啟新線程,串行執(zhí)行任務(wù)
串行隊列同步:不開啟新線程医窿,串行執(zhí)行任務(wù)
串行隊列異步:開啟一個新線程磅甩,串行執(zhí)行任務(wù)
并發(fā)隊列同步:不開啟新線程,串行執(zhí)行任務(wù)
并發(fā)隊列異步:開啟多個新線程姥卢,并發(fā)執(zhí)行任務(wù)