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

  • super1988guy

    super1988guy

    9 Aralık 2007
  • TrenchTech Computer Repair Tutorials

    TrenchTech C

    19 EYLÜL 2014
  • Trevor Eckhart

    Trevor Eckha

    19 Aralık 2009