title: Is dispatch_apply synchronous or asynchronous?
body: <p>I was told that I could use Grand Central Dispatch to run n processes simultaneously, in an asynchronous fashion.  The documentation said that if the processes were in a for loop, I could use the function dispatch_apply.  But now it's saying</p>
  
  <blockquote>
    <p>Note that dispatch_apply is synchronous, so all the applied blocks
    will have completed by the time it returns.</p>
  </blockquote>
  
  <p>Does this mean the blocks that are submitted to a queue using dispatch_apply are executed in order?  If so, what is the point of using concurrency?  Won't the slowdown be the same?</p>