Đặt Tên Cho Luồng
(Naming a thread)
Lớp Thread cung cấp các phương thức để thay đổi và lấy tên của một luồng. Mặc định, mỗi luồng có một tên, ví dụ như thread-0, thread-1, v.v. Chúng ta có thể thay đổi tên của luồng bằng phương thức setName(). Cú pháp của các phương thức setName() và getName() được cho dưới đây:
↳ String getName(): Được sử dụng để trả về tên của một luồng.
↳ void setName(String name): Được sử dụng để thay đổi tên của một luồng.
Chúng ta cũng có thể đặt tên cho một luồng trực tiếp khi tạo luồng mới bằng constructor của lớp.
Ví dụ 1
Dưới đây là một ví dụ về cách sử dụng constructor của lớp để đặt tên cho một luồng (thread) và sử dụng getName() để nhận tên của nó:
Ví dụ: Example.java
class MyThread extends Thread {
public MyThread(String name) {
// Đặt tên cho luồng bằng cách sử dụng hàm khởi tạo của lớp Thread
super(name);
}
@Override
public void run() {
// Nhận tên của luồng và in ra màn hình
System.out.println("Tên của luồng là: " + getName());
}
}
public class Example {
public static void main(String[] args) {
// Tạo và đặt tên cho luồng "Thread A"
MyThread threadA = new MyThread("Thread A");
// Tạo và đặt tên cho luồng "Thread B"
MyThread threadB = new MyThread("Thread B");
// Khởi động các luồng
threadA.start();
threadB.start();
}
}
Kết quả của chương trình là
Tên của luồng là: Thread B
Ví dụ 2
Dưới đây là một ví dụ về cách sử dụng phương thức setName() để đặt tên cho một luồng (thread) và sử dụng getName() để nhận tên của nó:
Ví dụ: Example.java
class MyRunnable implements Runnable {
@Override
public void run() {
// Nhận tên của luồng và in ra màn hình
System.out.println("Tên của luồng là: " + Thread.currentThread().getName());
}
}
public class Example {
public static void main(String[] args) {
// Tạo một đối tượng Runnable
MyRunnable myRunnable = new MyRunnable();
// Tạo một luồng và gán đối tượng Runnable cho nó
Thread thread = new Thread(myRunnable);
// Đặt tên cho luồng bằng phương thức setName()
thread.setName("Thread setname()");
// Khởi động luồng
thread.start();
}
}
Kết quả của chương trình là
Trong ví dụ này, chúng ta đã sử dụng phương thức setName() để đặt tên cho luồng sau khi tạo đối tượng Thread. Sau đó, khi luồng chạy, tên được in ra bằng cách sử dụng phương thức getName().
Đặt tên và nhận tên của một luồng (thread) là một bước quan trọng trong lập trình đa luồng, giúp quản lý và giám sát các luồng một cách hiệu quả. Bằng cách gán tên cho mỗi luồng, lập trình viên có thể dễ dàng xác định và phân biệt giữa các luồng khác nhau trong hệ thống, đặc biệt hữu ích trong việc gỡ lỗi và theo dõi hoạt động của chương trình. Việc nhận tên của một luồng cũng cung cấp khả năng truy xuất thông tin và kiểm soát hành vi của luồng đó trong suốt quá trình thực thi.