Tôi là chủ đề và đồng bộ Java mới.Câu hỏi được đồng bộ hóa Java
phép nói rằng tôi có:
public class MyClass(){
public synchronized void method1(){
//call method2();
}
public synchronized void method2(){};
}
có nghĩa là gì khi tôi đồng bộ hóa một
method1()
vào một đối tượng dụ? Vì vậy, khi một sợi có được khóa khi cố truy cập vàosynchronized method1()
, nó có ngăn chặn các luồng khác truy cập một sốsynchronized method2()
khác từ cùng một đối tượng đó không?Cho phép nói chuỗi tìm kiếm khóa khi truy cập phương thức1(), nhưng giả sử rằng
method1()
gọi điện đếnmethod2()
cũng làsynchronized
. Điều này có thể được không? Ý tôi là có bất kỳ quy tắc nào có thể ngăn chặnmethod1()
gọi sốmethod2()
?
Xin cảm ơn trước.