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

  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • tychoadragmire

    tychoadragmi

    20 Mart 2006
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009