GCD
来源:互联网 发布:java调用接口传递参数 编辑:程序博客网 时间:2024/05/22 03:25
什么是GCD:大中央调度器
GCD优点:是苹果专门为多核的并行运算提供的解决方案,
自动利用CPU内核,自动管理线程生命周期,程序员只需要告诉GCD要执行的任务,不需要编写任何线程管理代码。
GCD的核心概念:
任务:要执行什么操作;
队列:用来存放任务(先进先出)
GCD中两个用来执行任务的函数:
1,同步:dispath_sync (在当前线程中执行)
2, 异步: dispath_async (新开一条线程执行)
GCD的队列可以分为两类:
1,并发队列:可以让多个任务并发执行(自动开启多个线程并同时执行任务)(只有在异步函数下才有效)
2,串行队列:一个任务执行完毕后再执行下一个任务。
同步执行方法:
异步执行方法:
线程间通讯:如何在子线程中跳回主线程(必须在主线程刷新UI)
串行队列,异步方法:
串行队列,同步方法:
***********************延时执行*************************
****************************一次性执行****************************
有的时候,我们在开发中,有些代码,从程序启动之后,就只希望执行一次!
尤其在单例设计模式中使用非常普遍,在iOS开发中,单例的使用,已经到了“滥用”程度!
*************************调度组***************************
****************死锁*******************
1,如果主线程上有任务在执行,主队列不会调度任务。
2,关于GCD Block嵌套,要尽量减少层次,最多不要超过三层。
3,层次越多越复杂,多线程开发的原则:简单!
1 0
- gcd
- GCD
- GCD
- GCD
- GCD
- GCD
- GCD
- GCD
- GCD
- GCD
- GCD
- GCD
- gcd
- GCD
- GCD
- GCD
- GCD
- GCD
- 自动释放池
- POJ 3484 - Showstopper(二分搜索)
- java网络编程基础夯实01-Internet地址概述
- 小型项目:基于菜单的计算机系统
- OpenCV学习——cvApproxPoly的学习
- GCD
- springside4.2.3GA 从头配置,直到在eclipse中正常运行全流程
- UVa #10118 Free Candies (习题9-2)
- 第二章 Big O notation 试题以及讲解 (包会)
- 2014年山东省第五届ACM大学生程序设计竞赛解题报告
- Block
- PAT A1019. General Palindromic Number
- 最新HTML BroadcastChannel API引荐
- .Net单元测试(四)——Mock对象