dispatch_semaphore_t與dispatch_group_t

- (void)viewDidLoad {

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

[selftestLock];

});

}

#define semaphore_signal 0

- (void)testLock {

#if semaphore_signal

dispatch_semaphore_t sem = dispatch_semaphore_create(0);

#else

dispatch_group_t group =dispatch_group_create();

#endif

NSLog(@"begin");

#if semaphore_signal

#else

dispatch_group_enter(group);

#endif

dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

NSLog(@"loading....");

[imageView setImageWithURL:[NSURL URLWithString:@"http://www.pptbz.com/pptpic/UploadFiles_6909/201110/20111014111307895.jpg"] placeholder:nil options:0 completion:^(UIImage*image,NSURL*url,YYWebImageFromType from,YYWebImageStage stage,NSError*error) {

NSLog(@"loading finish ... ");

#if semaphore_signal

dispatch_semaphore_signal(sem);

#else

dispatch_group_leave(group);

#endif

}];

});

#if semaphore_signal

dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);

#else

dispatch_group_wait(group,DISPATCH_TIME_FOREVER);

#endif

NSLog(@"end");

}

2016-08-05 16:38:51.616 TableViewControllerDemo[16337:2393186] begin

2016-08-05 16:38:51.617 TableViewControllerDemo[16337:2393186] loading....

2016-08-05 16:38:51.703 TableViewControllerDemo[16337:2392956] loading finish ...

2016-08-05 16:38:51.704 TableViewControllerDemo[16337:2393186] end

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Managing Units of Work(管理工作單位) 調度塊允許您直接配置隊列中各個工作單元的屬性。它們還...
    edison0428閱讀 8,235評論 0 1
  • 一. 重點: 1.dispatch_queue_create(生成Dispatch Queue) 2.Main D...
    BestJoker閱讀 1,685評論 2 2
  • 【Xcode-Men】Hi,我們團隊的井小二童鞋給我們取了個隊名:Xcode-Men,簡稱X-Men,是不是屌屌的...
    知識小集閱讀 6,002評論 20 41
  • 一、前言 上一篇文章iOS多線程淺匯-原理篇中整理了一些有關多線程的基本概念。本篇博文介紹的是iOS中常用的幾個多...
    nuclear閱讀 2,152評論 6 18
  • 服務器端給了一個delete請求的API 在調試的過程中,發(fā)送請求時服務始終器接收不到我請求的參數(shù),接口一直不能調...
    純情掃地僧閱讀 3,242評論 0 0

友情鏈接更多精彩內容