小時(shí)候,我們總是對(duì)各種故事書著迷,《安徒生童話》、《一千零一夜》、《神話故事》,里面有許多我們記憶猶新的故事。記得那個(gè)在寒冷的圣誕夜里,一個(gè)賣火柴的小女孩凍死街頭的故事;記得...
小時(shí)候,我們總是對(duì)各種故事書著迷,《安徒生童話》、《一千零一夜》、《神話故事》,里面有許多我們記憶猶新的故事。記得那個(gè)在寒冷的圣誕夜里,一個(gè)賣火柴的小女孩凍死街頭的故事;記得...
來(lái)源:《UX Design for Mobile: Bottom Navigation》《How Do Users Really Hold Mobile Devices?》 ...
首先,我們來(lái)談?wù)劄槭裁匆O(shè)計(jì)首頁(yè)? 1.用戶打開APP,最先看到的就是首頁(yè),首頁(yè)是第一交互界面 2.首頁(yè)可以告訴用戶APP最為核心和重要的功能,快速了解掌握APP 3.首頁(yè)是...
有一點(diǎn)你說(shuō)的正是我顧慮的誒,*節(jié)課用的都是*易的案例,但是我們這種乙方的小公司,產(chǎn)品和網(wǎng)易的大相徑庭,面對(duì)的用戶群也不一樣,我怕上了課,也不能學(xué)有所用。
產(chǎn)品經(jīng)理培訓(xùn)到底有必要參加嗎如果你著急決定自己是否應(yīng)該參加產(chǎn)品經(jīng)理培訓(xùn)課程,你可以直接翻到文章末尾看總結(jié)。如果有耐心,可以看我BB一下我的經(jīng)歷。 我自己付費(fèi)參加過(guò)兩次產(chǎn)品經(jīng)理的培訓(xùn)。第一次是在自己還不清...
做了兩年的開發(fā),現(xiàn)在要轉(zhuǎn)崗產(chǎn)品經(jīng)理。剛好這幾天在糾結(jié)要不要報(bào)*點(diǎn)學(xué)院或者*節(jié)課的課程
話說(shuō)都漲價(jià)了,*點(diǎn)學(xué)院的要2999,*節(jié)課的要3200
產(chǎn)品經(jīng)理培訓(xùn)到底有必要參加嗎如果你著急決定自己是否應(yīng)該參加產(chǎn)品經(jīng)理培訓(xùn)課程,你可以直接翻到文章末尾看總結(jié)。如果有耐心,可以看我BB一下我的經(jīng)歷。 我自己付費(fèi)參加過(guò)兩次產(chǎn)品經(jīng)理的培訓(xùn)。第一次是在自己還不清...
如果你著急決定自己是否應(yīng)該參加產(chǎn)品經(jīng)理培訓(xùn)課程,你可以直接翻到文章末尾看總結(jié)。如果有耐心,可以看我BB一下我的經(jīng)歷。 我自己付費(fèi)參加過(guò)兩次產(chǎn)品經(jīng)理的培訓(xùn)。第一次是在自己還不清...
首先感謝行走的少年郎寫的一篇文章《iOS多線程--徹底學(xué)會(huì)多線程之『GCD』》它讓我對(duì)GCD的許多概念有了清晰的理解?,F(xiàn)在打算自己再親自寫一份筆記,以助加深印象。 1、隊(duì)列 ...
寫的太好了 關(guān)于多線程非常全的一篇
iOS 中實(shí)現(xiàn)多線程的四種方案一: 多線程的基本概念1.同步與異步的概念1.1 同步 必須等待當(dāng)前語(yǔ)句執(zhí)行完畢,才可以執(zhí)行下一個(gè)語(yǔ)句。1.2異步 不用等待當(dāng)前語(yǔ)句執(zhí)行完畢,就可以執(zhí)行下一個(gè)語(yǔ)句。...
一: 多線程的基本概念1.同步與異步的概念1.1 同步 必須等待當(dāng)前語(yǔ)句執(zhí)行完畢,才可以執(zhí)行下一個(gè)語(yǔ)句。1.2異步 不用等待當(dāng)前語(yǔ)句執(zhí)行完畢,就可以執(zhí)行下一個(gè)語(yǔ)句。...
iOS代碼塊Block 概述 代碼塊Block是蘋果在iOS4開始引入的對(duì)C語(yǔ)言的擴(kuò)展,用來(lái)實(shí)現(xiàn)匿名函數(shù)的特性,Block是一種特殊的數(shù)據(jù)類型,其可以正常定義變量、作為參數(shù)、...
關(guān)注倉(cāng)庫(kù),及時(shí)獲得更新:iOS-Source-Code-AnalyzeFollow: Draveness · Github 我們?cè)?iOS 開發(fā)中經(jīng)常需要使用分類(Categ...
很少有人知道weak表其實(shí)是一個(gè)hash(哈希)表,Key是所指對(duì)象的地址,Value是weak指針的地址數(shù)組。更多人的人只是知道weak是弱引用,所引用對(duì)象的計(jì)數(shù)器不會(huì)加一...
平常寫代碼。我們經(jīng)常會(huì)使用到MBProgressHUD,但是隨著版本的更新,我發(fā)現(xiàn)好多屬性都被廢棄,這里貼上最新詳解,希望能夠?qū)τ行枰男』锇橛兴鶐椭?//hud = [[...
十分的贊 好有道理
使用atomic一定是線程安全的嗎?這個(gè)問(wèn)題很少遇到,但是答案當(dāng)然不是。atomic在set方法里加了鎖,防止了多線程一直去寫這個(gè)property,造成難以預(yù)計(jì)的數(shù)值。但這也只是讀寫的鎖定。跟線程安全其實(shí)還是差...
po主理解錯(cuò)了。atomic是絕對(duì)安全的。
我們知道,在64位的操作系統(tǒng)下,所有類型的指針,包括void * 都是占用8個(gè)字節(jié)的。超過(guò)4個(gè)字節(jié)的基本類型數(shù)據(jù)都會(huì)有線程并發(fā)的問(wèn)題。
那所有的指針類型都會(huì)有這個(gè)問(wèn)題。
以oc 下的 NSArray * 為例子,如果一個(gè)多線程操作這個(gè)數(shù)據(jù),會(huì)有兩個(gè)層級(jí)的并發(fā)問(wèn)題
1、指針本身
2、指針?biāo)赶虻膬?nèi)存
指針本身也是占用內(nèi)存的,并且一定是8個(gè)字節(jié),第二部分,指針?biāo)赶虻膬?nèi)存,這個(gè)占多少字節(jié)就不一定了,有可能非常大,有可能也就1個(gè)字節(jié)
所以我們考慮NSArray * array 這個(gè)數(shù)據(jù)array 多線程操作的時(shí)候,必須分成兩部分來(lái)描述,一個(gè)是&array這個(gè)指針本身,另一個(gè)則是它所指向的內(nèi)存 array
大家注意下 &array 和 array 的區(qū)別 ,其實(shí)不用糾結(jié),你就想象現(xiàn)在有兩塊內(nèi)存,一塊是8字節(jié),一塊n字節(jié),8字節(jié)里面放的值,就是n字節(jié)內(nèi)存的首地址,
ok 現(xiàn)在聯(lián)系上atomic,如果用@property(atomic)NSArray *array 修飾之后,會(huì)有什么影響?網(wǎng)上說(shuō)的很多,不再贅述,我只想從內(nèi)存的角度來(lái)解釋這個(gè)過(guò)程
首先第一點(diǎn),你要記住,@property(atomic)NSArray *array 其實(shí)修飾的是這個(gè)指針,也就是這個(gè)8字節(jié)內(nèi)存,跟第二部分?jǐn)?shù)據(jù)n字節(jié)沒(méi)有任何關(guān)系,被atomic 修飾之后,你不可能隨意去多線程操作這個(gè)8字節(jié),但是對(duì)8字節(jié)里面所指向的n字節(jié)沒(méi)有任何限制!這就是所有網(wǎng)絡(luò)上所說(shuō)的 atomic 不安全的真相 ?。?!
我們來(lái)看一下,這能怪atomic? 本身你修飾的是一個(gè)指針,并且atomic 已經(jīng)完美的履行了它的指責(zé),你現(xiàn)在不可能對(duì)這個(gè)8字節(jié)進(jìn)行無(wú)序的多線程操作,這就夠了呀!atomic沒(méi)有任何鳥問(wèn)題。有問(wèn)題的是人,你本身并未對(duì)n字節(jié)做任何的限制,所以把問(wèn)題怪罪到atomic 上真的是很不合理
大江山嵐_f450 評(píng)論自使用atomic一定是線程安全的嗎?
這個(gè)問(wèn)題很少遇到,但是答案當(dāng)然不是。atomic在set方法里加了鎖,防止了多線程一直去寫這個(gè)property,造成難以預(yù)計(jì)的數(shù)值。但這也只是讀寫的鎖定。跟線程安全其實(shí)還是差...
在OC中,擴(kuò)展一個(gè)類的方式有兩種:繼承與分類。 繼承與分類最大的區(qū)別是,一般情況下,分類不能擴(kuò)展屬性,繼承可以擴(kuò)展屬性。但有一種情況下,分類可以擴(kuò)展屬性,那就...