后台执行

dispatch_async(dispatch_get_global_queue(0, 0), ^{ //后台程执行 something;
}); 

主线程执行

dispatch_async(dispatch_get_main_queue(), ^{// 主线程执行something;
});

一次性执行

static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{ // 主要用于单例
});

延迟执行

double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PE R_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ // code to be executed on the main queue after delay
});

创建自定义的线程

dispatch_queue_t myQueue = dispatch_queue_create("com.cnblogs.yybz", NULL); dispatch_async(myQueue, ^{// your code
});

设置自定义线程的优先级

dispatch_queue_t myQueue = dispatch_queue_create("com.cnblogs.yybz", NULL);
dispatch_queue_t globalHightQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_set_target_queue(myQueue, globalHighQueue);

dispatch_group_async(group, queue, ^{ // code
}); dispatch_group_wait(group, DISPATCH_TIME_FOREVER); //超时参数
dispatch_group_notify(group, queue, ^{// code
});dispatch_group_enter(group);
dispatch_async(queue, ^{//code
    dispatch_group_leave(group);
});

并行同步执行

/**
@parameter iterations 迭代器数量
@parameter queue 提交任务的队列
@parameter (^block)(size_t) 任务Block,size_t 为迭代器下标
**/
dispatch_apply(size_t iterations, dispatch_queue_t queue, void (^block)(size_t));

队列挂起与恢复

dispatch_suspend(queue);
dispatch_resume(myQueue);

信号量

dispatch_semaphore_create; //创建一个semaphore
dispatch_semaphore_signal; //发送一个信号
dispatch_semaphore_wait; //等待信号 

转载于:https://www.cnblogs.com/yybz/p/4043328.html

Dispatch 方法简介相关推荐

  1. 【机器学习入门到精通系列】蒙特卡罗方法简介和代码演示

    文章目录 1 蒙特卡罗方法简介 2 求圆周率pi的近似值 3 求定积分的近似值 1 蒙特卡罗方法简介 蒙特卡罗(Monte Carlo)方法:简单来说,蒙特卡洛的基本原理简单描述是先大量模拟,然后计算 ...

  2. 【Groovy】编译时元编程 ( ASTTransformation#visit 方法简介 | org.codehaus.groovy.ast.ModuleNode 脚本节点 )

    文章目录 一.ASTTransformation#visit 方法简介 二.org.codehaus.groovy.ast.ModuleNode 脚本节点 一.ASTTransformation#vi ...

  3. 【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 )

    文章目录 一.AsyncTask 参数简介 二.AsyncTask 方法简介 三.AsyncTask 基本用法 四.AsyncTask 构造函数源码解析 五.AsyncTask 构造函数相关源码注释 ...

  4. UA PHYS515A 电磁理论III 静磁学问题2 标量势方法与向量势方法简介

    UA PHYS515A 电磁理论III 静磁学问题2 标量势方法与向量势方法简介 标量势方法 向量势方法 Hard Ferromagnets 标量势方法 当空间中不存在电流密度时(J⃗=0\vec J ...

  5. 微信门店小程序怎样创建 门店小程序创建方法简介

    微信门店小程序怎样创建 门店小程序创建方法简介 微信门店小程序是什么东西?门店小程序要怎样创建?还不清楚微信门店小程序详情的小伙伴们抓紧时间跟上小编一起来看一下吧!     门店小程序是什么? 微信发 ...

  6. ML之相似度计算:图像数据、字符串数据等计算相似度常用的十种方法简介、代码实现

    ML之相似度计算:图像数据.字符串数据等计算相似度常用的十种方法简介.代码实现 目录 相似度 1.余弦相似性-夹角余弦(Cosine_Distance)距离 2.代码实现-余弦距离.余弦相似度 2.皮 ...

  7. NgRx store.dispatch方法的单步调试

    this.store.dispatch方法执行之后,会触发哪些操作呢? _value里维护的store的初始值: store里有三个字段: actionsObserver reducerManager ...

  8. Redis Cluster搭建方法简介22211111

    Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼ Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅功能,官方声 ...

  9. html5 filereader读取文件,H5的FileReader分布读取文件应该如何使用以及其方法简介...

    这次给大家带来H5的FileReader分布读取文件应该如何使用以及其方法简介,H5的FileReader分布读取文件的使用以及其方法简介的注意事项有哪些,下面就是实战案例,一起来看一下. 先介绍一下 ...

最新文章

  1. 剑指offer:孩子们的游戏(圆圈中最后剩下的数)
  2. @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
  3. LeetCode Find Minimum in Rotated Sorted Array II
  4. silverlight storyboard
  5. spring aop与strut2的拦截器冲突
  6. 阜阳市乡镇企业中专学校计算机教师高翱简介,2017年中南林业科技大学博士研究生奖助学金...
  7. HTTPS 原理解析
  8. 包含对流环热,热流边界,等温边界的稳态热传导方程的FEM求解。
  9. UI设计不能忽略的字体设计素材
  10. Oracle 语句连接字符,oracle拼接字符串当sql语句
  11. iOS 开发之动画篇 - 从 UIView 动画说起
  12. 一种破解静态链接库(.lib)的简单方法
  13. sql和mysql 语法区别吗_sql和mysql语法有什么不同
  14. 项目管理工具_Project 基础教程
  15. win10家庭版优化
  16. ride运行时报错ERROR
  17. linux用shell脚本写游戏,shell脚本实现猜数游戏
  18. Jmeter javax.swing.text.BadLocationException: Position not represented by view 解决方法
  19. 第三代大数据处理方案Flink
  20. win7+VS2008 System.Runtime.InteropServices.COMException

热门文章

  1. ie兼容响应式布局的实现总结
  2. 【算法】 - 动态规划 + 位运算
  3. 那些值得思考的PHP问题
  4. 26 JSX深度剖析与使用技巧
  5. eclispe修改project Explorer字体大小
  6. react源码解读 {createClass}
  7. 让您的Xcode键字如飞
  8. w3 protocol
  9. [跟我学UML] UML中的对象图
  10. Django Step by Step中文版,推荐一下