仅使用Objective-C程序的空闲CPU时间

仅使用Objective-C程序的空闲CPU时间,objective-c,Objective C,BOINC客户端(执行分布式处理作业,如SETI@homedoes)能够根据其他进程是否使用一定百分比的CPU时间来打开或关闭处理。也就是说,如果用户开始做一些工作,并且他们的进程开始使用60%的CPU,BOINC可以暂停以避免干扰用户的工作 我想做同样的事情(监视其他进程的CPU使用情况)。在我看来,困难不在于监视CPU使用情况,而在于确保信息不会被我自己的使用情况所扭曲。例如,如果我的进程使用了大量CPU时间,可能会阻止另一个进程使用足够的CPU时间来触发暂停 有人能给我指出正确的方向吗?即

BOINC客户端(执行分布式处理作业,如SETI@homedoes)能够根据其他进程是否使用一定百分比的CPU时间来打开或关闭处理。也就是说,如果用户开始做一些工作,并且他们的进程开始使用60%的CPU,BOINC可以暂停以避免干扰用户的工作

我想做同样的事情(监视其他进程的CPU使用情况)。在我看来,困难不在于监视CPU使用情况,而在于确保信息不会被我自己的使用情况所扭曲。例如,如果我的进程使用了大量CPU时间,可能会阻止另一个进程使用足够的CPU时间来触发暂停


有人能给我指出正确的方向吗?即使是关于搜索内容的建议也会很有用。我不确定该功能的名称。

您可以在流程启动时使用NSTask设置流程的“nice”值

另外
[[NSThread mainThread]setThreadPriority:0.0]


当优先级值介于0.0和1.0之间时,Cocoa API可能会让您省去与sudo的纠缠

只需将流程的优先级从正常更改为较低即可。0xHenry,将您的注释更改为答案:)