[英]Should I use Thread.sleep to be nice to other programs?
我通常使用主要的'while'循環在Java中編寫(小)游戲,有點像這樣:
while(running) {
time = getTime();
if(time - oldTime > 0.01) {
tick(time - oldTime);
oldTime = getTime();
}
}
我這樣做是為了讓程序每秒有最大幀數,但我聽說Thread.sleep允許其他線程執行。 我應該添加Thread.sleep(1)(或其他一些低毫秒)以允許計算機上的其他線程? 這更像是一個良好的編程實踐而不是性能的問題,並不是真的有必要,但我喜歡制作可靠和不合適的程序。
不,你不需要這樣做。
所有現代搶占式多任務系統都會將時間分配給其他線程以允許它們執行。 你不需要sleep()
來容納這個,除非你想在一段時間內強制放棄對其他線程的控制。
您可能想要這樣做的唯一時間是,如果您正在占用多核系統上的所有核心,並且您希望在后台安靜地完成長時間運行的計算密集型任務,而不會明顯影響正在發生的其他操作同時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.