Neden “while(true)” “Parçacığı.olmadan mı uyku” neden 100% ama Windows değil Linux CPU kullanımı?
Java'da basit bir program oluşturduk:
public static void main(String[] args) throws InterruptedException {
while (true)
;
}
Ben bir Linux makinede bu çalışma, 0 CPU kullanımı gösterir, ama yavaş görünmesini OS neden olmaz. Eğer Windows üzerinde aynı kodu çalıştırmak ancak, bunun sadece CPU kullanımı hakkında gösterir.
Linux üzerinde Windows ve OpenJDK 6 Oracle TOTEM kullanıyorum.
Windows' kararı parçacıkları rastgele zamanlayıcı ve Linux değil mi? merak ediyorum
CEVAP
Windows Görev Yöneticisi yok iken sözde modu IRİX, top
Linux varsayılan olarak çalışır. Hadi 4 çekirdek var ki:
1 IRİX modu ile tam olarak kullanılan çekirdek 0'dür ve 4 çekirdekli 400%.
, 1 kapalı IRİX modu ile tam olarak kullanılan çekirdek % oranında ve 4 çekirdek 100%.
Bu, top
Linux varsayılan olarak ~100% olarak sonsuz bir döngü gösterir ve Windows ~25%, ve tam olarak aynı anlama geliyor gibi gösterilir.
top
ile çalışırken, IRİX moduna geçiş yapabilirsinizShiftben. Bu numaraları maç yapacak.
Yürütme Dosyaları kilitleme: Windows, ...
Neden Boole yapar.Ve " değil olabi...
Neden C dizilerini kullanımı daha yayg...
Neden bu sınıfı, iş parçacığı güvenli ...
Neden yeni bir süreç daha Linux Window...