Trong lập trình Java, luồng (thread) là một khái niệm quan trọng để thực hiện các tác vụ đồng thời và đa luồng trong một ứng dụng. Luồng cho phép bạn thực hiện các tác vụ đồng thời mà không phải chờ đợi hoàn thành của các tác vụ khác. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo và sử dụng luồng trong Java.
Tạo luồng
Có hai cách để tạo một luồng trong Java: sử dụng lớp Thread và triển khai giao diện Runnable.
Sử dụng lớp Thread
Bạn có thể tạo một luồng bằng cách mở rộng lớp Thread và ghi đè phương thức run(). Sau đó, bạn có thể tạo một đối tượng của lớp Thread và gọi phương thức start() để bắt đầu thực thi luồng.
class MyThread extends Thread {
public void run() {
// Thực hiện công việc của luồng
}
}
// Tạo đối tượng luồng và bắt đầu thực thi
MyThread thread = new MyThread();
thread.start();
Triển khai giao diện Runnable
Bạn có thể triển khai giao diện Runnable và triển khai phương thức run(). Sau đó, bạn có thể tạo một đối tượng của lớp Thread, truyền đối tượng Runnable vào và gọi phương thức start() để bắt đầu thực thi luồng.
class MyRunnable implements Runnable {
public void run() {
// Thực hiện công việc của luồng
}
}
// Tạo đối tượng Runnable
MyRunnable runnable = new MyRunnable();
// Tạo đối tượng luồng và truyền Runnable vào
Thread thread = new Thread(runnable);
// Bắt đầu thực thi luồng
thread.start();
Sử dụng luồng
Khi một luồng được tạo và bắt đầu thực thi, bạn có thể sử dụng các phương thức của lớp Thread để quản lý luồng.
Phương thức sleep()
Bạn có thể sử dụng phương thức sleep() để tạm dừng thực thi luồng trong một khoảng thời gian nhất định.
try {
// Tạm dừng luồng trong 1 giây
Thread.sleep(1000);
} catch (InterruptedException e) {
// Xử lý ngoại lệ nếu có
}
Phương thức join()
Bạn có thể sử dụng phương thức join() để đợi cho đến khi luồng hiện tại hoàn thành thực thi.
try {
// Đợi luồng hoàn thành thực thi
thread.join();
} catch (InterruptedException e) {
// Xử lý ngoại lệ nếu có
}
Phương thức isAlive()
Bạn có thể sử dụng phương thức isAlive() để kiểm tra xem một luồng có đang hoạt động hay không.
if (thread.isAlive()) {
// Luồng đang hoạt động
} else {
// Luồng đã kết thúc
}
Đó là một số khái niệm cơ bản về cách tạo và sử dụng luồng trong Java. Luồng cung cấp một cách mạnh mẽ để thực hiện đa luồng và tăng hiệu suất của ứng dụng. Tuy nhiên, bạn cần cẩn thận khi làm việc với luồng để tránh các vấn đề như đồng bộ hóa và tình trạng cạnh tranh.