NSThread高CPU使用率

时间:2014-03-06 09:36:38

标签: ios7 core-audio nsthread

我尝试使用持续运行的线程在我的应用中以高比率执行任务。 在这个应用程序中,我有一个1000左右的时间戳列表。我对他们进行了调查,直到他们的时间,然后指示一个奥运采样器。

我遇到的问题是,我似乎从根本上不明白NSThread是如何工作的。在下面的简单示例中,尽管没有任务正在运行,但cpu仍然可以达到100%。

我以什么方式错误地使用NSThread? 什么是更好的方法来创建一个非常快速的轮询机制,不会占用CPU?

myThread =[[NSThread alloc]initWithTarget:self selector:@selector(test) object:Nil];
            [audioThread setThreadPriority:0];
            [audioThread start];


-(void)test

{
    while(mycondition)

{

   // do my work
  // cpu == 100%
}

}

1 个答案:

答案 0 :(得分:0)

解决方案是找到采样器点火时间之间的最小间隔(基于bpm /分辨率)并使线程睡眠达到该数量。