Mengendalikan Penamatan Isyarat dengan Anggun di Java
Mengendalikan isyarat penamatan dengan anggun adalah penting untuk memastikan penutupan aplikasi yang bersih dan mencegah kehilangan data. Isyarat SIGKILL, yang menamatkan program serta-merta, tidak boleh ditangkap oleh mana-mana aplikasi. Walau bagaimanapun, isyarat lain seperti SIGTERM boleh dikendalikan.
Mengendalikan SIGTERM dengan Cangkuk Penutupan
Untuk mengendalikan isyarat selain SIGKILL, anda boleh mendaftarkan cangkuk penutupan menggunakan Runtime .getRuntime().addShutdownHook() kaedah. Cangkuk ini akan dilaksanakan apabila Mesin Maya Java (JVM) ditamatkan.
Menguji Cangkuk Penutupan
Atur cara ujian berikut menunjukkan pelaksanaan cangkuk penutupan apabila proses ditamatkan dengan SIGTERM (bunuh -15):
public class TestShutdownHook { public static void main(String[] args) throws InterruptedException { Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { System.out.println("Shutdown hook ran!"); } }); while (true) { Thread.sleep(1000); } } }
Apabila program ini ditamatkan dengan SIGTERM, ia akan mencetak "Shutdown hook ran!" sebelum keluar.
Mengendalikan SIGKILL and Beyond
Tiada cara untuk mengendalikan SIGKILL secara langsung dalam mana-mana bahasa pengaturcaraan. Walau bagaimanapun, terdapat penyelesaian alternatif:
Dengan menggunakan teknik ini, anda boleh menghalang kehilangan data dan memastikan penutupan aplikasi yang anggun apabila isyarat seperti SIGTERM ditemui.
Atas ialah kandungan terperinci Bagaimanakah Aplikasi Java Boleh Mengendalikan Isyarat Penamatan Seperti SIGTERM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!