// 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:
Post a Comment