gpt4 book ai didi

ios - NSRunLoop 实现

转载 作者:行者123 更新时间:2023-12-01 15:53:37 26 4
gpt4 key购买 nike

我对 NSRunLoop 的实现很感兴趣,它可以在不占用大量 CPU 的情况下让线程空闲/休眠。这在 Objective-c 中是如何实现的?消耗高 CPU 的简单解决方案是 while(YES) {...}

最佳答案

一般来说,有很多系统调用会阻塞。也就是说,它们将导致内核挂起线程并且不给它 CPU 时间,直到发生某些特定事件或状态更改。诸如 kevent()poll()select()read() 之类的非纯文本-文件描述符等

关于 NSRunLoop 具体来说,它是围绕 CFRunLoop 构建的,它是开源的:https://www.opensource.apple.com/source/CF/CF-855.11/CFRunLoop.c .它在 OS X 和 iOS 上使用 Mach API。特别是,它会调用 mach_msg() 来等待输入源(以 Mach 端口的形式)触发(接收消息)或计时器结束。

关于ios - NSRunLoop 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23167551/

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