多线程
ssjson
ios开发者
展开
-
GCD初识
GCD全称Grand Central Dispatch,是一套低层级API。它允许程序将任务切分成多个单一任务,然后提交至工作队列并发或串行的执行。它不是Cocoa框架的一部分。GCD提供了高度集成的事件控制系统:可以设置句柄来响应描述文件、mach ports、进程、计时器、信号、用户生成事件,这些句柄通过并发实现。GCD紧密结合block实现,简单易用,功能强大。翻译 2016-10-17 16:15:16 · 590 阅读 · 0 评论 -
GCD的多核心性能
为了在 单一进程 中充分发挥多核的优势,我们有必要使用多线程技术,注意,多进程和GCD没有关系。在低层,GCD全局队列仅仅是工作线程池的抽象,队列中的block一旦可用,就会被调遣到工作线程中。除了主线程,提交至自定义队列的block最终也会通过全局队列进入相同的工作线程池。有两种途径可以充分利用多核心系统的性能:将单一任务或一组相关任务并发至全局队列中运算;将多个不相关任务或关联不紧密的任务并发至翻译 2016-10-18 13:42:05 · 290 阅读 · 0 评论 -
GCD Dispatch Sources
Dispatch source是一个监视某些类型事件的对象。当一个事件发生时,它会自动将一个处理该事件的block放入dispatch queue的执行例程中。GCD支持的事件有: 1. Mach port send right state changes; 2. Mach port receive right state changes; 3. External process state翻译 2016-10-18 14:11:04 · 221 阅读 · 0 评论 -
GCD队列操控
队列挂起 dispatch queue可以被挂起和恢复,使用 dispatch_suspend函数来挂起,使用 dispatch_resume 函数来恢复。dispatch source也支持挂起和恢复。注意,dispatch queue挂起时,当前的block会继续执行完,后续的block将不再执行,直至queue被恢复。另外,当销毁已经挂起queue时,需要先恢复queue。队列目标制定翻译 2016-10-18 16:04:06 · 347 阅读 · 0 评论