Так причем многозадачность к многопоточности!?
Чтобы ответить на этот вопрос, стоит понимать каким образом процессор может выполнять несколько комманд одновременно. Короткий ответ - никак. Но если мы будем постоянно переключать текущий процесс/поток, то у пользователя сложится впечатление, что перед ним многозадачная система. Так же, если у вас несколько ядер, то каждое ядро может выполнять задачу параллельно (с оговорочками). Теперь возвращаясь к iOS. В случае одного ядра, у iOS все очень плохо, есть высокоприоритетный процесс, который занимает большую часть процессорного времени, а значит имитация многозадачности будет очень хуевая. В случае нескольких ядер, казалось бы, ситуация лучше, и iOS может уже не имитировать многозадачность, а просто отдавать на исполнение параллельные задачи другим ядрам. Но тут опять херня в высокприоритетном процессе, потому что планировщик процессов, он один, и если вдруг соседним ядрам нужен доступ к ресурсам, который уже занимает этот высокоприоритетный процесс, они будут тупо ждать, когда он освободит этот ресурс.