Nếu tôi thêm một cái móc shutdown để thời gian chạy chương trình Java của tôi như vậy:Khi Móc Shutdown Phá vỡ Bad
public class MyShutdownHook implements Runnable
{
@Override
public void run()
{
// Stuff I want executed anytime
// the program, Java, or the OS exits normally,
// crashes, or terminates unexpectedly for any reason.
}
}
// The in another method...
Runtime.getRuntime().addShutdownHook(new MyShutdownHook());
... sau đó là có bao giờ bất kỳ tình huống mà rằng phương pháp run()
sẽ không thực hiện khi chương trình/Java/OS thoát bình thường, treo máy hoặc chấm dứt đột ngột? Nếu vậy, những tình huống nào có thể bằng cách vượt qua móc tắt máy của Runtime
và tại sao?
Chưa bao giờ giảm giá khả năng một cuộc tấn công hạt nhân trên máy tính của bạn. –
bạn có yêu cầu cung cấp thêm thông tin ngoài mô tả của javadoc về cách thức hoạt động này không? –
@Mark Peters::) funny joke ... Nhưng đừng quên rằng * SIGKILL * khá nhiều * là * một waepon nguyên tử; Trên cả Linux và OS X (hai tên chỉ có hai Un * x giống như thường được sử dụng bởi các nhà phát triển) * kill -9 * được * đảm bảo * để ngay lập tức giết chết quá trình và giải phóng tài nguyên của nó, không có câu hỏi. Không * ShutDownHook *. Không có gì. Bây giờ tôi đồng ý: một quá trình Java sẽ không thấy bất kỳ sự khác biệt nào giữa * kill -9 * và tấn công hạt nhân;) – TacticalCoder