先看代码
dispatch_queue_t queue = dispatch_queue_create("xx", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue, ^{ NSLog(@"1"); }); dispatch_async(queue, ^{ NSLog(@"2"); }); dispatch_async(queue, ^{ NSLog(@"3"); }); dispatch_async(queue, ^{ NSLog(@"4"); }); dispatch_barrier_async(queue, ^{ NSLog(@"我一定第5执行"); }); dispatch_async(queue, ^{ NSLog(@"6"); }); dispatch_async(queue, ^{ NSLog(@"7"); });
dispatch_barrier_async是一个屏障,能保证自己一定在那个位置执行,但是有一个问题,在global queue中测试失败。使用不等待执行处理的队列加dispatch_barrier_async可实现高效的数据库访问和文件访问。
执行结果
2014-01-01 00:31:31.626 GCDDemo[2319:3703] 4 2014-01-01 00:31:31.626 GCDDemo[2319:330b] 2 2014-01-01 00:31:31.626 GCDDemo[2319:1303] 1 2014-01-01 00:31:31.626 GCDDemo[2319:3603] 3 2014-01-01 00:31:31.630 GCDDemo[2319:3603] 我一定第5执行 2014-01-01 00:31:31.630 GCDDemo[2319:1303] 7 2014-01-01 00:31:31.630 GCDDemo[2319:3603] 6
相关推荐
MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件...
python库。 资源全名:plum-dispatch-1.3.0.tar.gz
资源来自pypi官网。 资源全名:plum-dispatch-1.5.6.tar.gz
用于搭建MHA高可用,测试安装包可以运行,并且多次用次安装包安装成功
Log-Dispatch-2.69.tar.gz,Log-Dispatch-2.69.tar.gz,Log-Dispatch-2.69.tar.gz,MHA安装的依赖包
MHA安装依赖包
dispatch_queue_t queue = dispatch_queue_create("com.gcd-dispatch_group_async(gro
1、通过dispatch_barrier_(a)sync添加的block会等待前边所有的block执行完(不包括回调)才执行。 2、在其后添加的block会在dispatch_barrier_(a)sync添加的block执行完之后(不包括回调)再执行; 不同点: 1、...
Laravel开发-laravel-single-dispatch 用于维护重复作业的Laravel Dispatcher扩展
spark-dispatch.zip
Matlab m file for economic dispatch.
前端项目-d3-dispatch,注册命名回调并用参数调用它们。
Swift-dispatch_semaphore
OC-dispatch_semaphore
OC-dispatch_group
Swift-dispatch_group
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
离线安装包,亲测可用
Combined-Heat-and-Power-System-Economic-Dispatch-master (1).zip