title: CoreData: difference between backgroundContext and child context with privateQueueConcurrencyType?
body: <p>With CoreData you can ask the container to create a background context with <code>container.newBackgroundContext()</code>.</p>
  
  <p>This is useful for use core data in background without impact on the UI main context.</p>
  
  <p>You can also create a child context with <code>privateQueueConcurrencyType</code></p>
  
  <pre><code>let context = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
  </code></pre>
  
  <p>In this case if I'm not wrong, the context will still execute in background on a different queue.</p>
  
  <p>So what's the difference between the two and when to use one and the other one?</p>