在上一篇文章中,主要講解了多線程相關(guān)的一些概念,包括線程、多線程編程及優(yōu)缺點,現(xiàn)在我們就來深入探討一下安全隱患中的數(shù)據(jù)競爭問題。 數(shù)據(jù)競爭是指不...
說起多線程編程,大家應(yīng)該都不陌生,從字面上理解,就是利用多線程技術(shù)編程。那么線程又是什么呢?今天我們就一起來探討一下。 1.何為線程? 從程序執(zhí)...
在開發(fā)過程中,我們可能會遇到這樣的情況,任務(wù)1和任務(wù)2可以同時進行,但是任務(wù)3和任務(wù)4只有等任務(wù)1和任務(wù)2都完成以后,才可以執(zhí)行。這時候如果我們...
在上一篇文章中,我們主要分析了同步、異步,并發(fā)隊列和串行隊列。相信看過的朋友應(yīng)該有初步的認(rèn)識,但是總覺得朦朦朧朧,今天我們通過幾個例子,來進一步...
說起多線程我們都不陌生,在開發(fā)過程中,我們經(jīng)常將一些耗時操作放在子線程中進行,處理完成以后會將結(jié)果通知主線程,繼續(xù)后面的操作。比如從網(wǎng)絡(luò)中下載一...
在開發(fā)過程中,經(jīng)常會使用KVO做一些業(yè)務(wù)監(jiān)聽,比如監(jiān)聽列表的滑動位置,獲取webView的加載進度和網(wǎng)頁標(biāo)題等等。通常的使用情況是在需要使用的地...
上一篇文章中,我們了解到,在編譯階段,每一個Category都是一個獨立的結(jié)構(gòu)體,其中包含實例方法、類方法、屬性和遵循的協(xié)議。具體內(nèi)容可參看Ca...
Category對我們并不陌生,相信大家在開發(fā)過程中都有用過。使用較多的場景,我猜應(yīng)該有2個: 在沒有拿到源碼的情況下,對靜態(tài)庫或動態(tài)庫添加方法...
通過前面幾篇文章,我們已經(jīng)了解了KVO與KVC的內(nèi)部實現(xiàn)邏輯:KVO通過運行時實現(xiàn)中間類,當(dāng)被監(jiān)聽的值發(fā)生改變時,向觀察者發(fā)送通知,告訴值已發(fā)生...