Correct, operation queues (other than the main operation queue returned by +[NSOperationQueue mainQueue]
) are never serviced by the main thread. From the NSOperationQueue
class reference:
Operation queues usually provide the threads used to run their operations. In OS X v10.6 and later, operation queues use the libdispatch library (also known as Grand Central Dispatch) to initiate the execution of their operations. As a result, operations are always executed on a separate thread, regardless of whether they are designated as concurrent or non-concurrent operations.