Cocoa NSThread和内存管理

Cocoa NSThread和内存管理,cocoa,nsthread,Cocoa,Nsthread,假设我使用detachNewThreadSelector:toTarget:withObject:创建并执行一个NSThread对象。线程执行的方法可能如下所示: - (void)search { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; // perform a lengthy search here. [pool release]; } 然后,在释放池之前,我可能会使用cancel方法

假设我使用
detachNewThreadSelector:toTarget:withObject:
创建并执行一个NSThread对象。线程执行的方法可能如下所示:

- (void)search {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    // perform a lengthy search here.

    [pool release];
}
然后,在释放池之前,我可能会使用
cancel
方法在线程运行时终止线程。NSAutoreleasePool对象会发生什么情况?我想它会泄漏,不是吗?

-(void)cancel
不会强制取消,它只是请求取消。您的
-(void)搜索将运行至完成。阅读“”了解详细信息。

我强烈建议您执行简单的并发任务