为了同步/排队对共享资源的访问,我将使用信号,由等待循环辅助。
为了不遇到CPU挂起的情况,我想sleep()
里面有一点点while
loop.
我搜索了http://developer.android.com参考并发现了两个这样的 sleep() 函数,我很困惑哪个适合哪种场景:
- 线程.sleep()
- 系统时钟.sleep()
哪一种更适合我描述的情况,为什么?
首先,你真的需要等待循环吗?您通常可以使用适当的通知来解决您的问题,即拥有一个对象,调用wait()
and notify()
或其他方式(如阻塞队列,或Semaphore.acquire()
在你的情况下)。
也就是说,如果你真的想要一个轮询循环(除非必须,否则你真的不应该这样做),我会坚持Thread.sleep()
。正如文档所说,没有太大区别,除了您可以选择中断Thread.sleep()
。不要放弃这样做的选择。
请注意,如果出现Thread.sleep()
,你将不得不捕获该异常 - 如果你非常懒,你可能会坚持使用SystemClock.sleep()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)