Tìm trong:Webe-CHÍP

Bộ gõ (kiểu Vni/Telex/Viqr)Tắt (Alt+T)Mở (Alt+M)

 
Trang chủ QUÁN LẬP TRÌNH  
Tạo luồng từ lớp Thread trong Java
Ngoài việc tạo luồng (thread) bằng cách thi công giao diện Runnable như đã trình bày trong bài trước, bạn còn có thể tạo luồng để hiển thị hình ảnh trong chương trình Slide Show bằng cách kế thừa từ lớp Thread có sẵn trong Java. Bạn hãy chép đoạn mã 1, biên dịch và chạy thử để xem kết quả trên màn hình ra sao (H1). Qua đoạn mã 1, bạn cũng cần chú ý kỹ thuật đồng bộ đa luồng (multi-thread synchronization) trong Java.
Đoạn mã 1
// ThreadSync.java
class MyThread extends Thread {
static String message[]={"I","love","Java."};
public MyThread(String id) {
// Gọi hàm dựng (constructor) của lớp Thread cha
super(id);
}

public void run() {
Sync.displayList(getName(), message);
}

void waiting() {
try {
sleep(2000);
}
catch(InterruptedException e){
System.out.println("Interrupted");
}
}
};

class Sync {
public static synchronized void displayList(String name, String list[]) {
/* Nếu không dùng từ khóa synchronized thì sẽ không
đảm bào một luồng làm xong hết công việc của nó
rồi một luồng khác mới được bắt đầu chạy.
*/
for (int i=0; i< list.length; ++i) {
MyThread thread = (MyThread)Thread.currentThread();
// Hàm waiting đã định nghĩa ở trên
thread.waiting();
System.out.println(name + list[i]);
}
}
};

public class ThreadSync {
public static void main(String args[]) {
MyThread thread1 = new MyThread("Thread 1: ");
MyThread thread2 = new MyThread("Thread 2: ");
thread1.start(); // Hàm run của thread1 được gọi
thread2.start(); // Hàm run của thread2 được gọi
}
};

Đoàn Nguyễn Minh Tuệ
NIIT Hoasen Faculty

Đầu trang