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