Rumah > Java > javaTutorial > teks badan

JSch Command Hang-Up: Bagaimana Mengelakkan Kebuntuan Semasa Membaca Output Besar?

Mary-Kate Olsen
Lepaskan: 2024-10-28 12:42:02
asal
151 orang telah melayarinya

  JSch Command Hang-Up:  How to Avoid Deadlock When Reading Large Output?

JSch Command Output Hang-up: A Case Study

Apabila melaksanakan arahan melalui JSch, anda mungkin menghadapi situasi di mana kod kelihatan digantung semasa cuba membaca daripada aliran input ChannelExec. Untuk menyelesaikan masalah ini, adalah penting untuk memastikan bacaan berterusan daripada output sambil memantau status arahan.

Pertimbangkan coretan kod berikut:

<code class="java">while ((numRead = reader.read(buf)) != -1) {
    // ...
}</code>
Salin selepas log masuk

Jika arahan menghasilkan sejumlah besar output, ia boleh mengisi penimbal keluaran, menyebabkan arahan terhenti sementara menunggu penimbal dimakan. Ini boleh membawa kepada senario kebuntuan.

Untuk menangani isu ini, anda harus membaca kedua-dua output standard dan ralat standard secara berterusan, memantau status arahan. Ini memastikan penimbal keluaran kekal kosong, membenarkan arahan selesai tanpa gangguan.

<code class="java">while (true) {
    // Read from standard output
    while (in.available() > 0) { // Replace reader with in and err for error handling
        // ...
    }
    // Read from standard error
    while (err.available() > 0) { // Replace reader with in and err for error handling
        // ...
    }
    if (channel.isClosed()) {
        // ...
    }
    try { 
      Thread.sleep(1000);
    } catch (Exception ee) {
    }
}</code>
Salin selepas log masuk

Dengan membaca secara berterusan daripada aliran keluaran dan ralat serta menyemak status saluran secara berkala, anda boleh mengelakkan penutupan telefon dan memastikan perintah itu berjaya diselesaikan.

Atas ialah kandungan terperinci JSch Command Hang-Up: Bagaimana Mengelakkan Kebuntuan Semasa Membaca Output Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!