gpt4 book ai didi

ios - sleep() 适用于 iOS 但不适用于 mac?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:20:13 25 4
gpt4 key购买 nike

我有一个对辅助线程的 dispatch_async 调用,只是出于测试目的,我想让辅助线程休眠 5 秒。这是代码:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
sleep(5);
});

当我在 Mac OSX Lion 10.7.2 上对此进行测试时,sleep() 函数不会让线程进入休眠状态。在 iPhone 模拟器上使用相同的代码。

在 mac 上,sleep 在主线程上工作,在使用 [NSThread sleepUntilTimeInterval:] 的辅助线程上也工作。

为什么 sleep() 函数不能在 mac 上的辅助线程上工作?谢谢。

最佳答案

如果可能,全局队列在多个线程上并发运行任务。 Mac 通常有 4-16 个内核,因此队列有多个工作线程是有道理的。最好将全局队列视为线程池。

如果您希望队列中的任务按特定顺序执行,听起来您可能想要查看串行队列。

关于ios - sleep() 适用于 iOS 但不适用于 mac?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864523/

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