注意:更新內(nèi)容會(huì)同步到GitHub iOSWiki-知識(shí)體系總結(jié)
總結(jié)-多線程
iOS知識(shí)點(diǎn)/操作系統(tǒng) #iOS體系總結(jié)
核心掌握
基礎(chǔ)
進(jìn)程是什么轧叽?有哪幾種狀態(tài)苗沧?進(jìn)程和線程的區(qū)別?
什么是并發(fā)炭晒?什么是并行待逞?并發(fā)和并行的區(qū)別?
你對(duì)多線程的理解网严?多線程的底層原理识樱?主要應(yīng)用?多線程的優(yōu)缺點(diǎn)?
iOS多線程有哪些實(shí)現(xiàn)方案怜庸?說(shuō)說(shuō)你的理解当犯?
NSThread(對(duì)應(yīng)Swift中的Thread)內(nèi)部實(shí)現(xiàn)的原理是什么?啟動(dòng)流程又是怎樣的割疾?2種初始化方法有什么區(qū)別嚎卫?怎樣實(shí)現(xiàn)一個(gè)常駐線程? 自定義Runloop的應(yīng)用-線程焙觊牛活
多線程會(huì)有哪些安全隱患拓诸?一般有什么解決方案?
死鎖產(chǎn)生的條件有哪些麻昼?
多線程間怎么通信奠支?底層原理是什么?
GCD
GCD全面詳解
你對(duì)GCD的理解抚芦?
創(chuàng)建一個(gè)GCD隊(duì)列胚宦?各個(gè)參數(shù)有什么作用?
GCD有哪幾種隊(duì)列燕垃?有什么特點(diǎn)枢劝?主隊(duì)列和全局隊(duì)列分別是什么隊(duì)列?
GCD隊(duì)列的執(zhí)行方式有什么區(qū)別卜壕?不同隊(duì)列不同執(zhí)行方式的區(qū)別您旁?主隊(duì)列異步執(zhí)行多個(gè)任務(wù)會(huì)開(kāi)啟線程嗎?為什么轴捎?
GCD什么情況會(huì)發(fā)生死鎖鹤盒?原因是什么?這個(gè)原因是由于線程循環(huán)等待引起的還是隊(duì)列侦副?手寫(xiě)幾種常見(jiàn)死鎖情況侦锯?
GCD任務(wù)提交方式有哪些?DispatchWorkItem 提交有什么好處秦驯?
GCD延遲執(zhí)行DispatchTime和DispatchWillTime有什么區(qū)別尺碰?
你對(duì)DispatchSource的理解?用過(guò)哪些source译隘?DispatchSourceProtocol常見(jiàn)方案的作用亲桥?手寫(xiě)一個(gè)?DispatchSourceTimer實(shí)現(xiàn)的定時(shí)器固耘?它和timer比哪個(gè)更精準(zhǔn)的题篷?
DispatchGroup的底層原理是什么?一般用在什么場(chǎng)景厅目?有哪幾種添加進(jìn)組的方式番枚,需要注意什么問(wèn)題法严?
Dispatch_barrier的理解?一般用在什么場(chǎng)景葫笼?
DispatchSemaphore的理解深啤?對(duì)信號(hào)量控制方法的理解?信號(hào)量底層原理又是怎樣渔欢?一般用在什么場(chǎng)景?
iOS 多線程同步瘟忱、鎖和文件讀寫(xiě)
iOS多線程同步方案有哪些奥额?哪些鎖的性能最好?
GCD實(shí)現(xiàn)線程同步方案有哪幾種访诱?分別手寫(xiě)一個(gè)實(shí)例垫挨?
iOS線程同步的各種鎖的理解?有哪幾種類(lèi)型触菜?高級(jí)鎖和低級(jí)鎖的區(qū)別九榔?線程阻塞的2種方案區(qū)別是什么?使用鎖的時(shí)候有哪些注意事項(xiàng)涡相?
OSSpinLock的理解哲泊?不安全的原因?怎樣使用催蝗?
os_unfair_lock的理解切威?怎樣使用?
pthread_mutex鎖的理解丙号?有哪幾種類(lèi)型先朦?普通pthread_mutex鎖需要注意哪些問(wèn)題?原因是什么犬缨?怎么解決喳魏?
pthread_mutex 遞歸鎖的理解?應(yīng)用場(chǎng)景怀薛?
::pthread_mutex 帶條件鎖的理解刺彩?wait和signal方法的理解?wait方法休眠時(shí)這個(gè)已加鎖線程會(huì)放開(kāi)鎖嗎枝恋?被喚醒時(shí)會(huì)自動(dòng)加鎖嗎迂苛?signal方法調(diào)用后被喚醒的其他線程會(huì)立馬持有鎖嗎?什么時(shí)候其他線程有機(jī)會(huì)持有鎖鼓择?帶條件pthread_mutex鎖怎樣使用三幻?::
NSLock和NSRecursiveLock的理解?怎樣使用呐能?
NSCondition 條件鎖的理解念搬?怎樣使用抑堡?
NSConditionLock 條件鎖的理解?常用方法的理解朗徊?怎樣使用首妖?
文件讀寫(xiě)安全方案(多讀單寫(xiě))有哪幾種解決方案?pthread_rwlock的理解爷恳?怎樣使用有缆?DispatchBarrier(zha柵欄)怎樣實(shí)現(xiàn)多讀單寫(xiě)?
PerformSelector相關(guān)
PerformSelector詳解
你對(duì)PerformSelector幾個(gè)方法的理解温亲?哪幾種方法是同步執(zhí)行的棚壁?哪幾種方法是異步執(zhí)行的?
同步執(zhí)行的底層原理是怎樣的栈虚?
異步延遲執(zhí)行底層原理又是怎樣的袖外?
線程間通信方法底層原理是怎樣的?waitUntildone有什么作用魂务?inBackground方法會(huì)開(kāi)啟新線程嗎曼验?