ios - 在 posix 线程上创建自动释放池

标签 ios objective-c pthreads nsthread nsautoreleasepool

我在应用程序中使用 GTMLogger 函数进行格式化日志记录。该应用程序创建实时 posix 线程(音频数据包处理)。有时我们需要在这些非 Cocoa 线程中执行日志记录。 GTMLogger 创建自动释放对象,我想在函数中的 GTMLogger 调用上放置一个 @autoreleasepool block ,从非 Cocoa 线程记录日志,但是恐怕会影响性能。

我的问题是 - 我能否以某种方式创建自动释放池并将其与当前 posix 线程关联,以便每个线程仅创建该池一次,而不是每次调用日志函数时创建该池?

提前致谢

最佳答案

在 ARC 下,使用 @autoreleasepool 速度相当快。如果您担心那里的性能,我会更担心首先避免不必要的日志记录调用,而不是自动释放池。

如果线程是长期存在的,则通常无法创建与“线程”关联的池。您需要定期排空池,如果您只是将整个线程主函数括在 @autoreleasepool{} 或类似的内容中,则不会发生这种情况。

关于ios - 在 posix 线程上创建自动释放池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690677/

相关文章:

有人可以告诉我错误,因为 pthread_join 不起作用

c++ - 在 C++ 中使用 pthreads 的一个非常简单的线程池

ios - 如何在 Xcode 中为我的 Today Widget 设置图标?

ios - 由于保留计数而释放对象

ios - 在 "if"语句中使用#define

ios - 检测 UITableView 上删除按钮的关闭(滑动删除)

iphone - 内存管理怪癖!与 NSNumber 相关

c - pthread mutex 两个线程互换锁定/解锁是有效的方法吗?

ios - 如何获取动画 UIImageView 的坐标

ios - 与 WatchKit 应用程序的行为不一致 - Swift