Вот почему так много java-кода раздуто с предложениями if (x!=null) {...}
. Не создавайте свои собственные исключения нулевого указателя.
Простой способ просто выделить метод в новом потоке - это использовать.
+ (void) detachNewThreadSelector: (SEL) aSelector toTarget: (id) aTarget withObject: (id ) аргумент
в NSThread
. Если вы не используете сборщик мусора, вам необходимо создать свой собственный пул автозапуска.
Другой простой способ, если вы просто не хотите блокировать основной поток, - использовать.
- (void) performSelectorInBackground :( SEL) aSelector withObject: (id) arg
на NSObject
В зависимости от того, какой тип параллелизма вам нужен, вам также следует взглянуть на NSOperation
, который может дать вам бесплатную блокировку, поэтому вы можете разделить его между несколькими потоками среди прочего.
Если вы разрабатываете с использованием Какао (например, для Mac или iphone), у вас есть доступ к классу NSThread
, который можно использовать для многопоточности. Поиск в Google для NSThread
найдет вам API.
Вы можете объявить это, как используя:
NSThread *mythread = [[NSThread alloc] initWithTarget:target selector:selector object:argument];
Где цель и селектор - это объект и селектор, с которых вы хотите запустить поток, а аргумент - это аргумент для отправки селектору.
Затем используйте [Myhread start], чтобы запустить его.
Вы также можете изучить NSOperation
Чтобы увидеть пример этого, прочтите сообщение Дрю МакКормака на MacResearch .