Başka bir java uygulamasından ayrı bir JVM dosyasında .jar dosyasını çağırmam gerekiyor ve çok fazla işlemci kullanıyor, bu nedenle geri kalanını etkilememek için arka plan önceliği ile çalışmalıdır. sistemi. Bunu yapmak için herhangi bir çapraz platform yöntemi var mı?Java süreci önceliğini değiştirmek için çapraz platform yolu
cevap
Basit yanıt, Java'daki bir İşlemin önceliğini değiştirmek için taşınabilir bir yol olmamasıdır. (Threads - yes, Processes - no.)
Java uygulamanızın CPU yoğun uygulamasını çalıştırmak için yeni bir JVM başlatması gerekiyorsa, o zaman şansınız tamamen taşınabilir değildir. Örneğin, genellikle java
komutunun (veya eşdeğerinin), -cp
argümanının (veya eşdeğerinin), sisteme özgü JVM seçeneklerinin yol adını vermeniz gerekir.
Yani, JVM başlatmak için komut size başlatılan sürecin önceliğini değiştirmek için OS özgü şeyler yapar bir sarıcı komut dosyası ile komutu yerine eğer zaten olmayan taşınabilir, pek önemli olması gereken olduğunu varsayarak. (Örneğin, UNIX veya Linux için, JVM'yi başlatmak için nice
'u kullanabilirsiniz.)
Dış işlem için önceliği belirleme yolunu bilmiyorum. Thread
ancak setPriority
yöntemi vardır, bu nedenle hedef uygulamayı kontrol ederseniz, belki asgari kendi önceliğini ayarlamak için uygulamayı anlatan bir anahtarı ekleyebilirsiniz:
theThread.setPriority(Thread.MIN_PRIORITY);
hala sistemini etkilerse, I CPU'yu boşaltmak için bazı kısa sleep
araya girmenizi öneririz.
Başka bir seçenek: "başlatma" uygulamasının sınıf yolunda hedef .jar
koyarsanız
, sadece yeni oluşturulan dizisindeki kavanoz-dosyanın main
kullanılan yöntem çağırabileceği ve sonra yukarıdaki yöntemi kullanarak önceliği ayarlayın. (Bu, hedef jar dosyasının kaynak kodunu denetlemeseniz bile çalışmalıdır.)
Anladığım kadarıyla başka bir süreç üretmesi gerekiyor ve bu yöntem bir iş parçacığı için, bu yüzden çalışabileceğini düşünmüyorum ... – Persimmonium
oh .. hmm .. iyi nokta. Sanırım yürütülen programa bir anahtar ekleme olasılığı varsa, bunun sadece mantıklı olduğunu varsayalım. – aioobe
Eğer çalıştırılan diğer işlemin kaynağına sahipse, kendini MIN_PRIORITY olarak ayarlayabilir, değil mi? –
- 1. SBT: Çapraz platform yolu java.library.path?
- 2. İşlemci/Bellek kullanımı için Çapraz Platform yolu
- 3. Çapraz platform dosya yolu oluşturma ve gösterimi
- 4. Python'da geçici dizin alma çapraz platform yolu
- 5. golang: çapraz platform yolu.Dir
- 6. Çapraz Platform Günlüğü
- 7. Çapraz platform kazıcı-raportörleri
- 8. Çapraz platform için statik kaydedici, ör. Java (Applet) ve Android
- 9. çapraz platform usb modülü?
- 10. Yıldız çapraz platform derlemesi
- 11. , iş parçacığı önceliğini veya işlem önceliğini değiştirmek için güzel() kullanılıyor mu? .? :
- 12. jQuery 1.4 kullanarak ses yürütmek için çapraz platform, çapraz tarayıcı yolu?
- 13. dropzone çapraz platform üzerlerine nesil
- 14. GLKit ile çapraz platform geliştirme?
- 15. Lua'nın çapraz platform C# uygulaması
- 16. Hafif, çapraz platform giriş kitaplığı
- 17. Atomik dosya yazma işlemleri (çapraz platform)
- 18. Python'da bir ses dosyasını çalmanın çapraz platform yolu nedir?
- 19. Xamarin Studio çapraz platform uygulama hatası
- 20. Java'da RSA Şifreleme: Çapraz Platform Sorunları?
- 21. Build Maven Tycho ile çapraz tutturma çapraz platform
- 22. Minimal, Bağımsız, Dağıtılabilir, çapraz platform web sunucusu
- 23. Çapraz Platform C++ Dinamik Kitaplık Eklentisi Yükleyicisi
- 24. Çapraz platform NPM başlangıç komut dosyası
- 25. Çapraz Platform MIDI kütüphanesi iOS CoreMIDI
- 26. SWIG ile çapraz platform arabirimi nasıl oluşturulur?
- 27. iOS ve OSX Döküman Paketleri çapraz platform
- 28. Çapraz platform kitaplığı yapmak için önişlemciyi nasıl kullanıyorsunuz?
- 29. Java'da iyi bilinen masaüstü yollarını bulmak için basit, çapraz platform?
- 30. Çapraz platform C++ geliştirme için görsel stüdyo nasıl oluşturulur
* "bir kere yaz, herhangi bir yerde koş" * çapraz platform mantığı, no. Ancak her Un * x (OS X dahil) ve her Windows makinesinde çalışacak küçük bir taşınabilir olmayan kod parçası yapmak gerçekten zor değil. Stephen C'nin cevabı + 1. – SyntaxT3rr0r