У меня есть набор задач, которые выполняются неоднократно, и вместо того, чтобы создавать новый поток каждый раз, когда нужно выполнить эту вызванную пользователем задачу, я бы хотел использовать пул потоков.
В типичном потоке для создания нового потока вы должны настраивать пул автоматического выпуска каждый раз, когда вызывается точка входа в поток. Кажется, что производительность для этой операции может быть тривиальной в соответствии с http://www.mikeash.com/?page=pyblog/autorelease-is-fast.html, но я хочу избежать затрат, связанных с настройкой и разрушением множества этих потоков во время выполнения моего приложения. В других фреймворках / языках я только что получил пустой поток и заставил его работать. По завершении работы поток возвращается обратно в пул.
Я не вижу никаких объектов пула потоков в iPhone SDK, только NSThread. Какой хороший способ сделать это?
Как я настраиваю свою тему:
// create thread using supplied entry point
[NSThread detachNewThreadSelector:@selector(myMethod)
toTarget:self
withObject:nil];
// thread entry-point
- (void)myMethod {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
*** code that should be run in the new thread goes here ***
[pool release];
}