- 并行和其他技术。把你的代码分布在模块化的代码块中,改进并发量的最好办法。也不是在任何时候任何情况下都是这样。依赖你的任务,有其他的并发办法。
- OpenCL和并发。OSX,开放计算语言。标准基础技术。执行通用计算在显卡处理器中。是一个好用的技术如果你有一个定义很好的计算集合。想要应用在大量数据上。比如,你可能用OpenCL执行过滤指令在一个图片的像素上,或使用它执行复杂的数学计算一次性。换句话说,OpenCL是一个齿轮,更多的是面向数据能平行的问题。
- 不适用于通用计算。需要非常大的努力准备和转换两种数据和必须的工作从核心到显卡使得可以被GPU操作。同样的,计算结果的转换也比较麻烦。所以,和系统交互的任务不要用OpenCL,最好是自包含的任务。计算独立。
- 什么时候用线程?虽然Opreation Queue或dispatch queue是推荐的方法,但是也不是万能药。最好是尽可能少的创建线程,只能用这个线程做特殊的任务。dispatch queue保证尽可能多的执行任务,但是不保证实时约束。如果你需要更多的预先行为在后台运行,最好也是用线程。
- Opreation Queue。Operation是面向对象的方式包含了你想执行异步的操作。或者是并发在一个队列里,或者是自己执行。因为是基于OC的,所以最常用。
- Operation对象。一个Operation是一个NSOperation对象。NSOperation是个抽象类,需要子类化。虽然是抽象类,也提供了重大的有意义的操作在你的子类。另外,也提供了两个具体的子类。
- NSInvocationOpreation
- NSBlockOpreration
- NSOperation
- 所有的Operation对象支持以下的特性。支持在对象间基于图的依赖。一个完成之后执行另一个。支持可选的完成block。支持使用KVO监控执行变化。支持优先级。支持取消语义。
- Opreation是设计为增强你的并发性的。也是一个好的组织方式,组织包含你的APP的简单独立行为。不是在主线程中执行,而是在异步的后台线程中执行。
并发编程03
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 原文链接:http://www.cocoachina.com/ios/20150807/12911.html 现如...
- 基本概念术语串行 vs 并发(concurrency)同步 vs 异步队列 vs 线程 iOS的并发编程模型 Op...
- 对于iOS的并发编程, 用的最普遍的就是GCD了, GCD结合Block可以so easy的实现多线程并发编程. ...