多线程总结之GCD基础
来源:互联网 发布:js执行href跳转action 编辑:程序博客网 时间:2024/06/05 03:28
/** * GCD Grand Central Dispatch 伟大的中枢调度器 优势 1. 为多核的并行运算提出的解决方案 2. 自动利用更多的CPU内核 3. 自动管理线程的生命周期 (创建线程 调用任务 销毁线程) 4. 程序员只需告诉GCD想要干什么 */// 任务 和 队列?// 任务 : 执行什么操作// 队列 : 用来存放任务// GCD的使用/** * 1. 定制任务 2. 将任务添加到队列中 GCD会自动将队列的任务取出,放入到对应的线程中执行 任务的取出 FIFO原则 */// GCD的函数/** * dispatch_sync (dispath_queue_t queue,dispatch_block_t block); queue 队列 - 并发队列 (自动开启多个线程同时执行任务) 并发功能只能在异步函数才有效 - 串行队列 (让任务一个接着一个执行) 队列只决定任务的执行方式 block 任务 dispatch_async (dispath_queue_t queue,dispatch_block_t block); */// 同步 异步 区别// 同步:只能在当前线程中执行任务,不具备开启新线程的能力// 异步:只能在当前线程中执行任务,具备开启新线程的能力
<pre name="code" class="objc">- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { // dispatch_sync 同一条线 同步 不具备开启线程的能力 // dispatch_async 同一条线 异步 不具备开启线程的能力 // 队列 不是决定你要不要开线程,它只是执行方式 // 获的全局的并发队列dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); // 将任务添加到全局队列中去异步执行 dispatch_async(queue, ^{ NSLog(@" --- download %@",[NSThread currentThread]); // 子线程中执行 }); dispatch_async(queue, ^{ NSLog(@" --- download1 %@",[NSThread currentThread]); // 子线程中执行 }); dispatch_async(queue, ^{ NSLog(@" --- download2 %@",[NSThread currentThread]); // 子线程中执行 }); dispatch_async(queue, ^{ NSLog(@" --- download3 %@",[NSThread currentThread]); // 子线程中执行 }); }
0 0
- 多线程总结之GCD基础
- 多线程总结之GCD
- iOS基础之----GCD多线程同步机制
- IOS多线程之——GCD总结。
- iOS多线程之GCD-NSOperation对比总结
- iOS多线程之GCD术语总结
- GCD的多线程基础
- 多线程基础总结 之 -- ConcurrentLinkedQueue
- iOS 多线程之----------GCD
- IOS多线程之GCD
- 多线程之GCD
- IOS 多线程之GCD
- iOS多线程之GCD
- 多线程之GCD
- ios多线程之GCD
- 多线程之-GCD详解
- iOS多线程之GCD
- 多线程之GCD
- Num 26 : HDOJ2187 : 悼念512汶川大地震遇难同胞——老人是真饿了 [ 贪心 ]
- Linux | 管道
- POJ 2991 Crane (线段树)
- NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0)
- Leetcode61 Rotate List
- 多线程总结之GCD基础
- 第一篇文章
- 后台定位上传的代码实践
- CentOS 7 安装PostGIS
- HDU 4289 Control (最小割 拆点)
- 深搜,广搜,图的遍历,基础(updating)
- fputc
- iOS开发UI篇--iOS动画(Core Animation)总结
- UI资源索引