VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java String Xử Lý Ngoại Lệ Các Lớp Lồng Nhau

Đa Luồng (Multithreading)

Java Thread Đa luồng trong java Vòng đởi của Thread Tạo Thread Thread Scheduler Sleep một thread Start một thread hai lần Gọi phương thức run() Phương thức join() Đặt tên cho thread Mức ưu tiên của một Thread Luồng hiểm Thread Pool Thread Group Shutdown Hook Thực hiện nhiều task Garbage Collection Lớp Runtime

Java Synchronization

Phương thức synchronization Khối synchronized Đồng bộ static Deadlock trong java Giao tiep giua cac thread Interrupt một Thread
Java AWT Java Swing Java I/O Ví Dụ Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Shutdown Hook trong java


Thread group trong java
Thực hiện nhiều task

Shutdown Hook có thể được sử dụng để thực hiện dọn sạch tài nguyên hoặc lưu trữ trạng thái khi JVM tắt bình thường hoặc đột ngột. Thực hiện dọn sạch tài nguyên có nghĩa là đóng file log, gửi một số cảnh báo hoặc cái gì đó khác. Vì vậy, nếu bạn muốn thực hiện một vài dòng code trước khi JVM tắt, sử dụng shutdown hook.

Nội dung chính

  • Khi nào JVM đóng lại?
  • Phương thức addShutdownHook(Thread hook)
    • Phương thức Factory
  • Ví dụ về Shutdown Hook trong java
  • Ví dụ tương tự về Shutdown Hook bởi lớp ẩn danh (annonymous)

Khi nào JVM đóng lại?

JVM đóng lại khi:

  • Người dụng nhấn ctrl+c trên command prompt
  • Phương thức System.exit(int) được gọi
  • Người dùng logoff
  • Người dùng shutdown vv.

Phương thức addShutdownHook(Thread hook)

Phương thức addShutdownHook(Thread hook) của lớp RunTime được sử dụng để đăng ký thread với Virtual Machine. Cú pháp:

public void addShutdownHook(Thread hook){}  

Đối tượng của lớp RunTime có thể tạo bằng cách gọi phương thức static getRuntime(). Ví dụ:

Runtime r = Runtime.getRuntime();

Phương thức Factory

Phương thức trả về thể hiện của một lớp được gọi là phương thức factory.


Ví dụ về Shutdown Hook trong java

File: TestShutdown1.java

class MyThread extends Thread {
    public void run() {
        System.out.println("shut down hook task completed..");
    }
}

public class TestShutdown1 {
    public static void main(String[] args) throws Exception {

        Runtime r = Runtime.getRuntime();
        r.addShutdownHook(new MyThread());

        System.out.println("Now main sleeping... press ctrl+c to exit");
        try {
            Thread.sleep(3000);
        } catch (Exception e) {
        }
    }
}

Output:

Now main sleeping... press ctrl+c to exit
shut down hook task completed..
Trình tự shutdown có thể được dừng lại bằng cách gọi phương thức halt(int) của lớp Runtime.

Ví dụ tương tự về Shutdown Hook bởi lớp ẩn danh (annonymous)

File: TestShutdown2.java

public class TestShutdown2 {
    public static void main(String[] args) throws Exception {

        Runtime r = Runtime.getRuntime();

        r.addShutdownHook(new Thread() {
            public void run() {
                System.out.println("shut down hook task completed..");
            }
        });

        System.out.println("Now main sleeping... press ctrl+c to exit");
        try {
            Thread.sleep(3000);
        } catch (Exception e) {
        }
    }
}

Output:

Now main sleeping... press ctrl+c to exit
shut down hook task completed..

Thread group trong java
Thực hiện nhiều task

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaBài tập Java - Sắp xếp nổi bọt (Bubble Sort) trong JavaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml