2009-10-20 2 views
0

т.е. я создаю новый поток, как это:Должен ли я прикладывать свое приложение вручную в многопоточном режиме, если я хочу использовать потоки?

[NSThread detachNewThreadSelector:@selector(doSomething) toTarget:self withObject:nil]; 

будет это автоматически сделать мое приложение многопоточное, или я должен сделать некоторую дополнительную работу где-нибудь?

ответ

1

Это автоматический. В документации по этому методу:

Если нить первый поток отдельно в приложении, это должностей метод в соответствии с NSWillBecomeMultiThreadedNotification с объектом нильполугруппы для уведомления центра по умолчанию .

GUI Приложения для какао практически всегда многопоточны в наши дни.

1

Это сделает ваше приложение многопоточным, но вам нужно быть очень осторожным. Если вы не правильно управляете своими нитями, вы столкнетесь с множеством проблем в будущем.

Вы должны изучить NSOperationQueue и NSOperation и посмотреть, как они работают.

Вместе вы можете создать многопоточное приложение, которое абстрагирует параллелизм в очереди и отдельные операции, выполняемые в этих очередях.

Также, как и в любом случае, любые методы, которые вы создаете на новый поток, должны быть обернуты внутри пула автозапуска. По умолчанию новые потоки не имеют собственного пула автообновлений, поэтому вам нужно настроить свой собственный.

Смежные вопросы