objective-c - 我应该释放我创建的NSThread吗?

标签 objective-c ios memory-management

我可能想得太多了。

// Inside some method...
NSThread *thread = [[NSThread alloc] initWithTarget:functionWrapper selector:@selector(run) object:nil];
[thread start];

此后调用[thread release]:A.避免内存泄漏,这是有必要的,或者... B.会破坏事物。

this question的答案表明,线程将在执行完毕后释放自身,但是该行为记录在哪里?

最佳答案

是的,您将需要在一段时间后通过自动发布或发布来发布它。

但是,您实际上并不需要一开始就初始化自己的线程,objective-c提供了很多方法来实现线程化而无需自己分配新线程,例如

[self performSelectorInBackground:@selector(yourMethod) withObject:nil];

也有NSOperation,您也可以将任务排队。

关于objective-c - 我应该释放我创建的NSThread吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11514739/

相关文章:

java - 尝试在我的网络爬虫中运行几天时出现许多内存错误

ios - UIDatePicker View - 在 iOS 7 中看起来与 iOS 6 相同

ios - 如何检查我的 IPA 文件支持的 IOS 设备

ios - 通过推送重置应用程序图标上的角标(Badge)

ios - 将 AFNetworking 添加到新项目时出现错误

ios - 如何在 iOS 中保存 PWA 状态

iOS 如何为给定服务器重置 NSURLCredential 或让我的应用程序忘记它曾经与该服务器交谈过?

objective-c - 如何摆脱 'undeclared selector' 警告

c++ - 如何一次重置大量类成员,而不是在析构函数中?

r - R中整数向量的大小