Введение в приложение SlowWorker
Во всех современных операционных системах теперь можно пользоваться многими потоками исполнения в программе, чтобы даже в случае приостановки выполнения одного потока в ожидании конкретного события остальные потоки продолжали действовать. Однако, несмотря на это, многие разработчики относятся к много поточному программированию как к чему-то вроде черной магии и поэтому избегают его как чумы.
Правда, от компании Apple поступили обнадеживающие вести для тех, кто хотел бы разделить свой код на одновременно выполняющиеся фрагменты, не особенно вникая во внутренний механизм работы системы на уровне много поточной обработки. Эти добрые вести состоят в выпуске диспетчера Grand Central Dispatch (GCD), предоставляющего совершенно новый прикладной интерфейс прикладного программирования (API — application programming interface) для разделения выполняемой приложением работы на более мелкие части, которые могут быть распределены по отдельным потокам, а при наличии подходящих аппаратных средств — по нескольким центральным процессорам.
Большая часть этого нового прикладного интерфейса доступна с помощью блоков — еще одного нововведения, позволяющего вводить своего рода анонимные встраиваемые функциональные возможности в код на С и Objective-C. У блоков много общего с аналогичными средствами в таких языках программирования, как Ruby и Lisp. Они дают возможность выбрать новые интересные способы структурирования взаимодействий различных объектов и в то же время сохранить код более тесно связанным в методах.
В качестве примера для демонстрации принципа действия диспетчера GCD мы создадим несложное приложение SlowWorker, состоящее из простого интерфейса, управляемого единственной кнопкой и текстовым представлением. Достаточно щелкнуть на этой кнопке, чтобы сразу же началось выполнение синхронного задания, блокирующего работу интерфейса данного приложения приблизительно на десять секунд.
Как всегда, начнем с создания проекта в среде Xcode, используя шаблон View-Based Application. Присвойте новому проекту имя SlowWorker. Внесите в заголовочный файл SlowWorkerViewController .h изменения, выделенные ниже полужирным.
- Дата: 31-12-2014, 12:15