title: Does sync/async behave similar to serial/concurrent i.e., do they both control DispatchQueues or do sync/Async control Threads only
body: <p>Most answers on stackoverflow implies in a way that sync vs async behaviour is quite similar to serial vs concurrent queue concept difference. Like the link in the first comment by @Roope</p>
  
  <p>I have started to think that 
  Serial and concurrent are related to <code>DispatchQueue</code>, and sync/ async for how an operation will get executed on a thread.
  Am I right?</p>
  
  <p>Like if we've got <code>DQ.main.sync</code> then task/operation closure will get executed in a synchronous manner on this serial (main) queue.
  And, if I do <code>DQ.main.async</code> then task will get asynchronously on some other background queue, and on reaching completion will return control on main thread.
  And, since main is a serial queue, it won't let any other task/operation get into execution state/ start getting executed until the current closure task has finished its execution.</p>
  
  <p>Then,
  <code>DQ.global().sync</code> would execute a task synchronously on the thread on which its task/operation has been assigned i.e., it will block that thread from doing any other task/operation by blocking any context switching on that particular thread. 
  And, since, global is a concurrent queue it will keep on putting the tasks present in it to the execution state irrespective of previous task/operation's execution state.</p>
  
  <p><code>DQ.global().async</code> would allow context switching on the thread on which the operation closure has been put for execution</p>
  
  <p>Is this the correct interpretations of the above dispatchQueues and sync vs async?</p>