Tuesday, July 17, 2012

Cách tạo luồng từ lớp Thread trong Java

// 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

}

};

No comments: