Я собираюсь не согласиться с Максом в этом вопросе и сказать, что вы не должны полностью игнорировать использование многопоточности в своем приложении. OpenGL ES можно получить из фонового потока, но вы можете общаться только с контекстом OpenGL ES, используя один поток за раз.
У Apple есть целый раздел под названием « Параллельность и OpenGL ES » в их Руководстве по программированию OpenGL ES для iOS. При этом они описывают несколько сценариев повышения производительности приложения OpenGL ES с использованием многопоточности.
Как правило, рекомендуется перемещать трудоемкие операции из основного потока. Основной поток обрабатывает пользовательский интерфейс вашего приложения, и если вы заблокируете его, вы не сможете обновлять стандартные элементы пользовательского интерфейса и регистрировать события касания. В зависимости от того, сколько обработки выполняется за кулисами для вашей игры (физика, искусственный интеллект и т. Д.), Вам может понадобиться переместить значительные куски этого в фоновый поток.
Многопоточность - не простая тема, но Apple значительно упростила эту задачу с помощью Grand Central Dispatch, поэтому я настоятельно рекомендую прочитать их Руководство по программированию параллелизма , в котором описываются этот и другие методы для достижения многопоточности в вашем приложении. , Кроме того, я вел урок по многопоточности и GCD как часть моего курса по разработке для iOS, видео которого можно найти в iTunes U .
Поскольку Apple выпускает многоядерные устройства, использование многопоточности и GCD теперь очень окупится для вас в будущем.