Penutupan Anggun dengan Cangkuk Penutupan di Java
Memastikan penutupan yang anggun adalah penting untuk aplikasi Java yang mantap. Cangkuk penutup menyediakan mekanisme untuk melaksanakan tugas pembersihan sebelum aplikasi ditamatkan, memastikan penyempurnaan operasi kritikal.
Contoh Aplikasi
Pertimbangkan aplikasi yang menulis nombor pada fail dalam kelompok 100. Untuk memastikan bahawa satu kelompok selesai sebelum program terganggu, kami boleh melaksanakan cangkuk penutupan.
Pelaksanaan
Tambah pembolehubah boolean yang tidak menentu statik keepRunning untuk menunjukkan sama ada aplikasi harus terus berjalan. Ubah suai kaedah run() untuk menyemak keepRunning sebelum menulis setiap kelompok:
<code class="java">for (int i = 0; i < N & keepRunning; ++i) writeBatch(pw, i);</code>
Dalam main(), daftarkan cangkuk penutupan yang menetapkan keepRunning kepada false dan tunggu benang utama selesai:
<code class="java">final Thread mainThread = Thread.currentThread(); Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { keepRunning = false; mainThread.join(); } });</code>
Cara Ia Berfungsi
Apabila JVM dimatikan, cangkuk penutupan berdaftar dilaksanakan secara serentak. Cangkuk kami menetapkan keepRunning kepada false, menyebabkan kaedah run() berhenti menulis kelompok. Ia kemudian menunggu untuk utas utama (iaitu menulis kelompok) selesai, memastikan semua kumpulan selesai sebelum program ditamatkan.
Kesimpulan
Kait penutup menyediakan cangkuk yang mantap cara untuk memastikan penutupan anggun dalam aplikasi Java. Dengan menyelaraskan penamatan urutan dan tugas pembersihan, kami boleh meminimumkan kehilangan data dan memastikan penutupan aplikasi yang teratur.
Atas ialah kandungan terperinci Bagaimanakah Cangkuk Mematikan Memastikan Penamatan Anggun dalam Aplikasi Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!