Dan*_* S. 4 macos concurrency multithreading objective-c ios
我的问题背后的原因是我正在为iPhone编写音频单元托管应用程序,我需要同步音频线程(写入内存)和GUI线程(从内存中读取)的内存访问.
在寻找有关该主题的指南时,我发现苹果为iOS中的并行编程提供了两个指南(类似的指南适用于OS X):
关于iOS,我是并行编程的新手; 因此,我不清楚我需要阅读哪些指南,或者它们是否涉及相同的事项.
这是写在线程编程指南内的警告框中
重要提示:如果您正在开发新应用程序,我们鼓励您研究用于实现并发性的替代 OS X 技术。如果您还不熟悉实现线程应用程序所需的设计技术,则尤其如此。这些替代技术简化了实现并发执行路径所需的工作量,并提供比传统线程更好的性能。有关这些技术的信息,请参阅并发编程指南。
因此,真正的区别在于线程编程指南较旧,并且不鼓励在现代 Objective-C 中使用。
然而,如评论中所述,对于需要极低延迟的操作(如实时音频编辑)不适合NSOperation和GCD。
并发编程指南将是您在调度API(又名GCD)和NSOperations中的速成课程.
线程编程指南将向您介绍线程,互斥和同步API和技术.它们还将涵盖线程的创建以及与Run Loops的交互.
对于您所述的问题," 线程编程指南"中的信息将更有用.
然而,这些指南提供的大部分内容都是阻止可以做到的心态.在实时音频中,它不行.
AudioUnit Hosting Fundamentals也是必读的:http://developer.apple.com/library/ios/#documentation/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/AudioUnitHostingFundamentals/AudioUnitHostingFundamentals.html
如果要为UI设置动画,则可能需要实现/查找循环缓冲区实现.
注意 - 如果您不熟悉并发设计,实时并发将成为一个棘手的课题.
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |