For iOS, what is the difference of the Concurrency Programming Guide and the Threading Programming Guide?
concurrency, ios, macos, multithreading, objective-c
Solution
Concurrency Programming Guide will be your crash course in dispatch APIs (aka GCD) and `NSOperation`s.
Threading Programming Guide will introduce you to Threads, Mutual Exclusion and Synchronization APIs and technologies. They will also cover creation of threads and interacting with Run Loops.
For your stated problem, the information in the Threading Programming Guide will be more useful.
However, much of what these guides present is of the mindset that blocking is OK. In realtime Audio, it's not OK.
AudioUnit Hosting Fundamentals is also a required read: http://developer.apple.com/library/ios/#documentation/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/AudioUnitHostingFundamentals/AudioUnitHostingFundamentals.html
If you are animating your UI, you may need to implement/find a circular buffer implementation.
Beware - concurrency in realtime is going to be a tough subject if you are new to concurrent designs.
Problem
The reason behind my question is that I am writing an audio units hosting app for iPhone and I need to synchronize memory access from the audio threads (writing to memory) and from the GUI thread (reading from memory). While looking for guides to read up on the subject, I figured out that apple provides two guides for parallel programming in iOS (analogous guides are available for OS X): Threading Programming Guide Concurrency Programming Guide With regards to iOS, I am a novice to parallel programming; thus it is not clear to me which of the guides I need to read, or if they cover the same matters.