我在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)」或其他什麼,實際上是一個空操作。 –