Rumah > Java > javaTutorial > Bagaimanakah Cangkuk Mematikan Memastikan Penamatan Anggun dalam Aplikasi Java?

Bagaimanakah Cangkuk Mematikan Memastikan Penamatan Anggun dalam Aplikasi Java?

Patricia Arquette
Lepaskan: 2024-11-05 06:13:02
asal
473 orang telah melayarinya

How Do Shutdown Hooks Ensure Graceful Termination in Java Applications?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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