我在Android 2.3.3中使用SDK 2.2创建了一个AsyncTask。从C(NDK)调用Thread.yield()或等价物
在任务/类中,我正在使用带有NDK的C库。
而不是在Java中有一个while(condition)
循环,我在C中有这个循环,以避免在每次循环迭代期间通过JNI进行昂贵的调用。
如果我在Java中有while(condition)
循环,我会在每个循环迭代结束时调用Thread.yield()
以允许线程挂起。
C有可能获得相同的行为吗? 我在C的while(condition)
循环的末尾用usleep(10)
试过了,但是我没有得到预期的行为。
有什么建议吗?
您可能需要将C标签添加到您的问题中,以便订阅该标签的用户可以看到它。 –
你说得对。谢谢。 –
我不知道关于android,但请注意,在某些平台上的“Thread.yield()”,“sched_yield()”,“pthread_yield()”,“Sleep(0)”或其他什么,实际上是一个空操作。 –