Rumah >Java >javaTutorial >Mengapa System.out.println() dan System.err.println() Tidak Keluar dalam Susunan Yang Dipanggil?

Mengapa System.out.println() dan System.err.println() Tidak Keluar dalam Susunan Yang Dipanggil?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-15 00:47:10363semak imbas

Why Doesn't System.out.println() and System.err.println() Output in the Order They Are Called?

System.out.println dan System.err.println Output Order

Apabila menggunakan System.out.println() dan System.err .println(), adalah penting untuk ambil perhatian bahawa ia adalah aliran keluaran berasingan yang mungkin berkelakuan tidak dapat diramalkan. Seperti yang anda nyatakan, output daripada strim ini mungkin tidak dicetak dalam urutan yang digunakan.

Untuk memahami sebab ini berlaku, pertimbangkan bahawa strim ini menggunakan mekanisme caching. Apabila menulis kepada strim ini, data disimpan sementara dalam penimbal. Membilas penimbal mencetuskan output sebenar ke konsol. Walau bagaimanapun, masa pemadaman berbeza antara System.out dan System.err.

Lazimnya, aliran keluaran disiram secara berkala atau selepas tempoh tidak aktif. Tingkah laku ini boleh membawa kepada tertib keluaran yang diperhatikan di mana pernyataan System.out muncul berturut-turut, diikuti oleh pernyataan System.err dengan cara yang sama.

Untuk menangani isu ini, anda boleh mengepam keluar penimbal secara eksplisit menggunakan System.out .flush() dan System.err.flush() dalam gelung. Ini memastikan bahawa setiap penulisan mencetuskan siram serta-merta, menghasilkan output berselang-seli yang dikehendaki bagi "keluar" dan "err" seperti yang dimaksudkan.

Memahami caching dan flushing strim adalah penting untuk mengurus output dengan cekap dalam program Java, mengelakkan tingkah laku yang tidak dijangka dan memastikan output konsol yang boleh dipercayai.

Atas ialah kandungan terperinci Mengapa System.out.println() dan System.err.println() Tidak Keluar dalam Susunan Yang Dipanggil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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