If the "synchronously" argument is true, the background import happens on a private dispatch queue that the data manager created on initialization, using a newly created MOC that's a child of the main thread MOC. Each of these MOC's are created with thread confinement, but they all use the same shared private queue that data manager created.

If false, it happens the way it did before - on a newly created MOC that's a child of the main MOC, with private queue confinement - and each background import can happen in parallel, since private queue confinement lets each MOC manage its own private queue.

"Synchronously" in this case refers to the idea that all background imports, from any source, will be dispatched to exactly the same queue, so they happen serially, albeit on a non-main thread.

The problem with the truly parallel approach (private queue confinement type) is that two imports of the same data that are started right after one another, but before the previous one finishes, will result in duplicate objects being imported, since the second spawned moc doesn't know about the object being imported on the first one.