Multithreading trong lập trình Java là quá trình chạy nhiều luồng (threads) cùng một lúc trong một ứng dụng Java. Mỗi luồng là một dòng thực thi độc lập, cho phép ứng dụng thực hiện nhiều công việc cùng một lúc và tận dụng tài nguyên hệ thống hiệu quả hơn.
Java hỗ trợ đa luồng thông qua một API đơn giản được xây dựng sẵn. Để tạo và quản lý đa luồng trong Java, bạn có thể làm theo các bước sau:
- Kế thừa từ lớp
Thread
: Bạn có thể tạo một lớp mới kế thừa từ lớpThread
và ghi đè phương thứcrun()
để định nghĩa công việc mà luồng sẽ thực hiện.
java
class MyThread extends Thread {
@Override
public void run() {
// Công việc mà luồng thực hiện
for (int i = 0; i < 5; i++) {
System.out.println("Thread " + Thread.currentThread().getId() + " is running");
}
}
}
- Implement giao diện
Runnable
: Bạn cũng có thể tạo một lớp mới triển khai giao diệnRunnable
và định nghĩa công việc trong phương thứcrun()
.
java
class MyRunnable implements Runnable {
@Override
public void run() {
// Công việc mà luồng thực hiện
for (int i = 0; i < 5; i++) {
System.out.println("Thread " + Thread.currentThread().getId() + " is running");
}
}
}
- Khởi tạo và bắt đầu luồng: Sau khi định nghĩa công việc cho luồng, bạn có thể khởi tạo luồng và bắt đầu nó bằng cách gọi phương thức
start()
.
java
public class MultiThreadExample {
public static void main(String[] args) {
// Tạo và bắt đầu luồng bằng cách kế thừa từ lớp Thread
MyThread thread1 = new MyThread();
MyThread thread2 = new MyThread();
thread1.start();
thread2.start();
// Tạo và bắt đầu luồng bằng cách triển khai giao diện Runnable
MyRunnable runnable1 = new MyRunnable();
MyRunnable runnable2 = new MyRunnable();
Thread thread3 = new Thread(runnable1);
Thread thread4 = new Thread(runnable2);
thread3.start();
thread4.start();
}
}
Khi chạy ví dụ trên, bạn sẽ thấy các luồng được thực hiện cùng một lúc và in ra thông tin trạng thái của từng luồng. Lưu ý rằng thứ tự thực hiện các luồng có thể thay đổi mỗi lần bạn chạy chương trình do tính không xác định trong việc lập lịch của hệ điều hành.