iOS 這是你想要的

Runloop 相關(guān)

Runloop 保持線程能隨時處理事件而不退出
深入理解Runloop

  • 線程和Runloop 的關(guān)系
    線程和 RunLoop 之間是一一對應(yīng)的凑术,其關(guān)系是保存在一個全局的 Dictionary 里。線程剛創(chuàng)建時并沒有 RunLoop椅棺,如果你不主動獲取,那它一直都不會有定庵。RunLoop 的創(chuàng)建是發(fā)生在第一次獲取時西篓,RunLoop 的銷毀是發(fā)生在線程結(jié)束時。你只能在一個線程的內(nèi)部獲取其 RunLoop(主線程除外)
  • 一個 RunLoop 包含若干個 Mode炉爆,每個 Mode 又包含若干個 Source/Timer/Observer堕虹。每次調(diào)用 RunLoop 的主函數(shù)時,只能指定其中一個 Mode芬首,這個Mode被稱作 CurrentMode赴捞。如果需要切換 Mode,只能退出 Loop郁稍,再重新指定一個 Mode 進入赦政。這樣做主要是為了分隔開不同組的 Source/Timer/Observer鬼雀,讓其互不影響硅则。
RunLoop_0.png
  • Source/Timer/Observer 被統(tǒng)稱為 mode item生音,一個 item 可以被同時加入多個 mode源祈。但一個 item 被重復(fù)加入同一個 mode 時是不會有效果的赊锚。如果一個 mode 中一個 item 都沒有笛厦,則 RunLoop 會直接退出维费,不進入循環(huán)

鎖相關(guān)

@synchronized
  • 傳入@synchronized的參數(shù)和這個鎖有什么關(guān)系种蝶?
  • @synchronized是否持有它所加鎖的對象左痢?
  • 如果傳入@synchronized代碼塊的對象在代碼塊里被析構(gòu)了或者被置為nil了會怎么樣靡羡?

解答:

  • 對于每個加了同步的對象系洛,`Objective-C的運行時都會給其分配一個遞歸鎖,并且保存在一個哈希表中亿眠。
  • 一個被加了同步的對象被析構(gòu)活著被置為nil都是沒有問題的碎罚。然而文檔中并沒有對此進行什么說明
  • 注意不要往@synchronized代碼塊中傳入nil!這會毀掉代碼的線程安全性纳像。通過往objc_sync_nil加入斷點你可以看到這種情況的發(fā)生荆烈。

@synchronized代碼塊隱式地給被保護的代碼段添加了一個異常處理塊。這就是為什么在給某個對象保持同步的時候竟趾,如果拋出了異常憔购,鎖就會被釋放。

遞歸鎖岔帽,是一種在已持有鎖的線程重復(fù)請求鎖卻不會發(fā)生死鎖的鎖玫鸟。你可以在這里找到一個相關(guān)的例子。有個很好用的類NSRecursiveLock

優(yōu)化相關(guān)

待看

[淺談Block] (http://www.reibang.com/p/f9956b102d36)

[淺談Clang] (http://www.reibang.com/p/9fc7776cce9b)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末犀勒,一起剝皮案震驚了整個濱河市屎飘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贾费,老刑警劉巖钦购,帶你破解...
    沈念sama閱讀 223,207評論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異褂萧,居然都是意外死亡押桃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評論 3 400
  • 文/潘曉璐 我一進店門导犹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唱凯,“玉大人,你說我怎么就攤上這事谎痢】闹纾” “怎么了?”我有些...
    開封第一講書人閱讀 170,031評論 0 366
  • 文/不壞的土叔 我叫張陵节猿,是天一觀的道長票从。 經(jīng)常有香客問我,道長沐批,這世上最難降的妖魔是什么纫骑? 我笑而不...
    開封第一講書人閱讀 60,334評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮九孩,結(jié)果婚禮上先馆,老公的妹妹穿的比我還像新娘。我一直安慰自己躺彬,他們只是感情好煤墙,可當我...
    茶點故事閱讀 69,322評論 6 398
  • 文/花漫 我一把揭開白布梅惯。 她就那樣靜靜地躺著,像睡著了一般仿野。 火紅的嫁衣襯著肌膚如雪铣减。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,895評論 1 314
  • 那天脚作,我揣著相機與錄音葫哗,去河邊找鬼。 笑死球涛,一個胖子當著我的面吹牛劣针,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亿扁,決...
    沈念sama閱讀 41,300評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼捺典,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了从祝?” 一聲冷哼從身側(cè)響起襟己,我...
    開封第一講書人閱讀 40,264評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牍陌,沒想到半個月后擎浴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,784評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡呐赡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,870評論 3 343
  • 正文 我和宋清朗相戀三年退客,在試婚紗的時候發(fā)現(xiàn)自己被綠了骏融。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片链嘀。...
    茶點故事閱讀 40,989評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖档玻,靈堂內(nèi)的尸體忽然破棺而出怀泊,到底是詐尸還是另有隱情,我是刑警寧澤误趴,帶...
    沈念sama閱讀 36,649評論 5 351
  • 正文 年R本政府宣布霹琼,位于F島的核電站,受9級特大地震影響凉当,放射性物質(zhì)發(fā)生泄漏枣申。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,331評論 3 336
  • 文/蒙蒙 一看杭、第九天 我趴在偏房一處隱蔽的房頂上張望忠藤。 院中可真熱鬧,春花似錦楼雹、人聲如沸模孩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榨咐。三九已至介却,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間块茁,已是汗流浹背齿坷。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留数焊,地道東北人胃夏。 一個月前我還...
    沈念sama閱讀 49,452評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像昌跌,于是被迫代替她去往敵國和親仰禀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,995評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載:http://www.cocoachina.com/ios/20150601/11970.html RunL...
    Gatling閱讀 1,443評論 0 13
  • 原文地址:http://blog.ibireme.com/2015/05/18/runloop/ RunLoop ...
    大餅炒雞蛋閱讀 1,163評論 0 6
  • 轉(zhuǎn)自http://blog.ibireme.com/2015/05/18/runloop 深入理解RunLoop ...
    飄金閱讀 991評論 0 4
  • 聽了朋友的公眾號感受很多蚕愤,聽到他在語音里面泣不成聲的告訴大家他跟康熙的故事答恶,突然就有點傷感,最近經(jīng)常被這種情緒充斥...
    金銀花小姐閱讀 116評論 0 0
  • 小家伙今天爸爸要偷懶了,實在想不出要給你講個什么故事裕坊。雖然腦子里有幾個現(xiàn)成的小故事包竹,可是,我知道不能隨便拿點東西來...
    草覆蟲閱讀 198評論 0 0