www.updatesofts.com
!
"
+
&
}
}
class Source implements Runnable{
int number;
Target target;
Thread t;
/**
* Source constructor comment.
*/
public Source(Target targ,int n){
target = targ;
number = n;
t = new Thread(this);
t.start();
}
// đồng bộ gọi phương thức display()
public void run(){
synchronized(target) {
target.display(number);
}
}
}
class Synchblock {
/**
* Synchblock constructor comment.
*/
public static void main(String args[]){
Target target = new Target();
int digit = 10;
Source s1 = new Source(target,digit++);
Source s2 = new Source(target,digit++);
Source s3 = new Source(target,digit++);
try{
s1.t.join();
s2.t.join();
s3.t.join();
}catch(InterruptedException e){
System.out.println("Interrupted");
}
}
}
Ở đây, từ khóa synchronized không hiệu chỉnh phương thức “display()”. Từ khóa
này được sử dụng trong phương thức run() của lớp “Target” (mục tiêu). Kết quả xuất ra
màn hình tương tự với kết quả chỉ ra ở hình số 8.6