只执行一次  (多用于单例模式)

dispatch_once(dispatch_once_t *predicate, dispatch_block_t block);

dispatch_once_t *predicate:一个全局的变量      dispatch_block_t block:block函数块

多次执行

dispatch_apply(size_t iterations, dispatch_queue_t queue,void (^block)(size_t));

size_t iterations:执行次数      dispatch_queue_t queue:队列      void (^block)(size_t):block函数块

具体举例如下:

1、只执行一次时:

//自定义一个block函数块

//定义block
typedef void (^BLOCK)(void); //将执行代码封装到block中
BLOCK myBlock = ^(){
static int count = ;
NSLog(@"count=%d",count++);
};

//执行dispatch_once函数

//myblock调用
//myBlock();
//myBlock(); //只会执行一次,GCD once
static dispatch_once_t predicate;
dispatch_once(&predicate, myBlock);
dispatch_once(&predicate, myBlock);

//运行结果:虽然执行两次,只有一个输出

-- ::34.279 -GCD-once[:] count=

2、多次执行时:

//自定义一个block函数

//定义block
typedef void (^BLOCK)(size_t); //将函数封装到block
BLOCK myBlock = ^(size_t size){ static int count = ;
NSLog(@"count=%d",count++); };

//执行dispatch_apply

//GCD多次执行任务
dispatch_apply(, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ), myBlock);

//运行结果如下:执行了5次,有5个输出

-- ::59.438 -GCD-apply[:] count=
-- ::59.438 -GCD-apply[:] count=
-- ::59.438 -GCD-apply[:] count=
-- ::59.438 -GCD-apply[:] count=
-- ::59.439 -GCD-apply[:] count=

最新文章

  1. Activiti学习(二)数据表结构
  2. [MOSEK] Stupid things when using mosek
  3. BFC布局原理
  4. 第二届中国移动互联网测试大会PPT
  5. 【001:转载 ubuntu下: 建立本地SVN服务器】
  6. Centos Python2 升级到Python3
  7. 与众不同 windows phone (46) - 8.0 通信: Socket, 其它
  8. Matrix Chain Multiplication[HDU1082]
  9. 2016年6月29日 星期三 --出埃及记 Exodus 14:26
  10. mysql创建PATH快捷
  11. 软件工程 speedsnail 第二次冲刺4
  12. 精美的 ( Android, iPhone, iPad ) 手机界面设计素材和线框图设计工具
  13. Linux安装JDK、MySQL和Tomcat
  14. P5315 头像上传
  15. mysql 拒绝登录解决
  16. 利用Spring的AbstractRoutingDataSource解决多数据源的问题
  17. 大话设计模式(C#)
  18. Annoy 近邻算法
  19. C# Mongo Client 2.4.2创建索引
  20. Dockerize PostgreSQL

热门文章

  1. 使用cmd(黑窗口)敲命令使用远程数据库
  2. eetcode 之String to Integer (atoi)(28)
  3. POJ - 2478
  4. hdu5735
  5. IIS 安装问题
  6. gulp-babel,es6转es5
  7. sublime text光标移入移出括号的快捷键设置
  8. 2t3ik、ddgs与Linux异常文件下载处理
  9. Android使用UncaughtExceptionHandler捕获全局异常
  10. 深度学习应用系列(三)| autokeras使用入门