gpt4 book ai didi

multithreading - MPProcessors 在 Mac OS 10.7 中被弃用。还有什么选择?

转载 作者:行者123 更新时间:2023-12-04 06:48:23 26 4
gpt4 key购买 nike

我正在开发一个代码可以追溯到 10.4 的分形渲染应用程序。它使用 NSThreads 来管理渲染线程以计算分形。

直到最近,它支持回到 10.4 的操作系统,所以我什至无法升级它以使用 NSOperationQueues。

应用程序 FractalWorks 现在可在 Mac 应用程序商店中使用,最低操作系统要求为 10.6.6。因此,我们放弃了对旧操作系统的支持,并将返回并重新处理渲染以使用 NSOperationQueues 或 GCD。

与此同时,我想在新发布的 Lion 中启动并干净地运行它。具体来说,我想摆脱 10.7 中新弃用的长列表调用。第一次通过将是一个简单的升级。

该应用目前使用 MPProcessors 方法来确定系统上的核心数,因此它可以为每个核心创建一个渲染线程。它运行良好,MPProcessors 甚至允许在 i5/i7 上使用超线程,并让程序创建的渲染线程数量是内核数量的两倍。

我需要一个现代调用,它可以让我查询系统的逻辑核心数量,就像 MPProcessors 现在所做的那样。文档只是说该方法已被弃用,而没有提供替代方法。什么是替代方案? (不要告诉我 GCD/NSOperationQueues。我知道那是要走的路,但这是比我现在准备承担的更大的工作。)

提前致谢

邓肯钱普尼淘宝

最佳答案

在 Cocoa 中:[NSProcessInfo processInfo].processorCount

在 BSD-ese 中:sysctlbyname("hw.ncpu", ...)

使用 Gestalt:Gestalt(gestaltCountOfCPUs, &count);

关于multithreading - MPProcessors 在 Mac OS 10.7 中被弃用。还有什么选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791906/

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