gpt4 book ai didi

ios - NSThread 是否具有与主线程相同的内存权限?

转载 作者:行者123 更新时间:2023-11-29 13:47:40 29 4
gpt4 key购买 nike

我正在使用 NSOperationQueue 来管理一个相当长的 iOS 应用程序阶段,所以我想异步管理它。在那个阶段,我通过直接使用 calloc 函数在 C 中分配大数组。“大”是指 1024x256 二维 float 组和类似的东西。

如果所有内容都驻留在主线程上而不是应用程序在计算时锁定但一切正常,如果相反,我将重部分移动到 NSInvocationOperation 那么我会得到很多奇怪的结果,使用调试器有时我在控制台中收到一条奇怪的消息

No memory available to program now: unsafe to call malloc

所以我想知道与主线程相比,由操作队列管理的线程是否有一些不同的限制,以及如何更好地解决这个问题。

最佳答案

据我所知没有任何限制……但是,您可能会遇到可用 RAM 的极限。由于 iOS 不执行虚拟内存,因此当内存不足时,它会向其他应用程序发送警告以释放 RAM。这可能是您问题的根源。

使用仪器来分析您使用的 RAM 量。如果它超过 20MB 左右,您可能会因为内存使用过多而面临被终止的危险。

关于ios - NSThread 是否具有与主线程相同的内存权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6631661/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com