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