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

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • TheDroidDemos

    TheDroidDemo

    15 ŞUBAT 2011