iOS深入理解GCD 第四篇(dispatch_barrier_async)

本文摘自http://www.cnblogs.com/ziyi--caolu/p/4900650.html

在訪問數(shù)據(jù)庫或者文件的時(shí)候,我們可以使用dispatch_barrier_async避免數(shù)據(jù)競(jìng)爭(zhēng)問題锌历,代碼如下:

#import <Foundation/Foundation.h>
 
@interface ZYPerson : NSObject
@property (nonatomic, copy) NSString *name;
@end
 
 
#import "ZYPerson.h"
 
@interface ZYPerson ()
@end
 
static NSString *_name;
static dispatch_queue_t _concurrentQueue;
@implementation ZYPerson
- (instancetype)init
{
    if (self = [super init]) {
       _concurrentQueue = dispatch_queue_create("com.person.syncQueue", DISPATCH_QUEUE_CONCURRENT);
    }
    return self;
}
- (void)setName:(NSString *)name
{
    dispatch_barrier_async(_concurrentQueue, ^{
        _name = [name copy];
    });
}
- (NSString *)name
{
    __block NSString *tempName;
    dispatch_sync(_concurrentQueue, ^{
        tempName = _name;
    });
    return tempName;
}
@end

需求:多個(gè)getter方法(也就是讀戎パ)是可以并發(fā)執(zhí)行的坪稽,而getter(讀)與setter(寫)方法是不能并發(fā)執(zhí)行的阿迈。

在隊(duì)列中毡代,barrier塊必須單獨(dú)執(zhí)行笤喳,不能與其他block并行。這只對(duì)并發(fā)隊(duì)列有意義酥泛,并發(fā)隊(duì)列如果發(fā)現(xiàn)接下來要執(zhí)行的block是個(gè)barrier block今豆,那么就一直要等到當(dāng)前所有并發(fā)的block都執(zhí)行完畢嫌拣,才會(huì)單獨(dú)執(zhí)行這個(gè)barrier block代碼塊柔袁,等到這個(gè)barrier block執(zhí)行完畢,再繼續(xù)正常處理其他并發(fā)block异逐。

因此在上面的代碼中捶索,setter方法中使用了barrier block以后,對(duì)象的讀取操作依然是可以并發(fā)執(zhí)行的灰瞻,但是寫入操作就必須單獨(dú)執(zhí)行了

附上一個(gè)鏈接 http://www.reibang.com/p/9ed95082f256 dispatch_barrier_sync和dispatch_barrier_async的對(duì)比

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腥例,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子酝润,更是在濱河造成了極大的恐慌燎竖,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件要销,死亡現(xiàn)場(chǎng)離奇詭異构回,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)疏咐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門纤掸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浑塞,你說我怎么就攤上這事借跪。” “怎么了酌壕?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵掏愁,是天一觀的道長(zhǎng)歇由。 經(jīng)常有香客問我,道長(zhǎng)果港,這世上最難降的妖魔是什么印蓖? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮京腥,結(jié)果婚禮上赦肃,老公的妹妹穿的比我還像新娘。我一直安慰自己公浪,他們只是感情好他宛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著欠气,像睡著了一般厅各。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上预柒,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天队塘,我揣著相機(jī)與錄音,去河邊找鬼宜鸯。 笑死憔古,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的淋袖。 我是一名探鬼主播鸿市,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼即碗!你這毒婦竟也來了焰情?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤剥懒,失蹤者是張志新(化名)和其女友劉穎内舟,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體初橘,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡验游,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壁却。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片批狱。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖展东,靈堂內(nèi)的尸體忽然破棺而出赔硫,到底是詐尸還是另有隱情,我是刑警寧澤盐肃,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布爪膊,位于F島的核電站权悟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏推盛。R本人自食惡果不足惜峦阁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耘成。 院中可真熱鬧榔昔,春花似錦、人聲如沸瘪菌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽师妙。三九已至诵肛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間默穴,已是汗流浹背怔檩。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蓄诽,地道東北人薛训。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像若专,于是被迫代替她去往敵國和親许蓖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蝴猪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

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

  • GCD筆記 總結(jié)一下多線程部分,最強(qiáng)大的無疑是GCD,那么先從這一塊部分講起. Dispatch Queue的種類...
    jins_1990閱讀 761評(píng)論 0 1
  • iOS中GCD的使用小結(jié) 作者dullgrass 2015.11.20 09:41*字?jǐn)?shù) 4996閱讀 20199...
    DanDanC閱讀 832評(píng)論 0 0
  • 1 GCD 術(shù)語 1.1 Serial vs. Concurrent 串行 vs. 并發(fā) 概念:該術(shù)語描述執(zhí)行當(dāng)前...
    NinthDay閱讀 3,920評(píng)論 2 38
  • 2017-07-28iOS開發(fā) 導(dǎo)語:在iOS中调衰,多線程方案有四種:pthread、NSThread自阱、NSOper...
    C9090閱讀 401評(píng)論 0 1
  • 要說學(xué)哲學(xué)有什么用沛豌,當(dāng)我看了羅素的《哲學(xué)問題》之后趋箩,我開始懷疑這個(gè)世界的真實(shí)性了。哲學(xué)的精神就是懷疑一切加派,懷疑到不...
    廖軍閱讀 1,838評(píng)論 0 3