SORU
30 Mart 2011, ÇARŞAMBA


süreç.() bekle asla geri dönmez

Process process = Runtime.getRuntime().exec("tasklist");
BufferedReader reader = 
    new BufferedReader(new InputStreamReader(process.getInputStream()));
process.waitFor();

CEVAP
30 Mart 2011, ÇARŞAMBA


waitFor() dönüşü olmayan birçok nedeni vardır.

Ama genellikle yürütülen komut çıkmak yok aslında aşağı kaynar.

Bu, yine, birçok nedeni olabilir.

Bir ortak akıl süreci bazı çıktı üreten ve uygun derelerin okumuyorsun. Bu işlem arabellek dolu ve süreç için okumaya devam etmek için bekler en kısa sürede engellendiği anlamına gelir. Teslim işlemi başka işlemin bitmesini bekler çünkü süreç bekliyor olmayacak (ki, ...). Bu klasik bir kilitlenme durumu.

Sürekli işlemler giriş akışı engellemez emin olmak için okumak gerekir.

Runtime.exec() Tüm tuzaklar açıklar ve "When Runtime.exec() won't" onları aramış yolları (Evet, yazı 2000, ama içeriği hala geçerlidir.) gösteren güzel bir makale var

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • lilstevie89

    lilstevie89

    25 Mart 2011
  • LiveForGodsKingdom

    LiveForGodsK

    6 NİSAN 2008
  • magnum33563

    magnum33563

    8 NİSAN 2011