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
}
};
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s