Bây giờ, tôi không chắc đây có phải là một câu hỏi ngu ngốc hay không, xin vui lòng chịu với tôi nếu có.Java: Cái gì, nếu có, bị khóa bởi các phương thức được đồng bộ ngoài đối tượng chúng thuộc về?
Khóa trên vật thể "đệ quy", i. e. nếu hai đối tượng có tham chiếu đến một đối tượng thứ ba trong các trường của họ và một luồng đang chạy một phương thức được đồng bộ hóa trên một trong hai đối tượng, thì có thể bất kỳ luồng nào khác truy cập đối tượng thứ ba không?
// a and b are some objects that implement Runnable
// they both reference the same third object
a.ref = c;
b.ref = c;
// a is run in a thread and processes some data in a loop for a long time
// the method the loop belongs to is declared synchronized
threadA = new Thread(a);
threadA.start();
a.someSyncedMethod(); // this would block ...
b.ref.someOtherSyncedMethod(); // ... but would this?
a.ref.someOtherSyncedMethod(); // ... and how about this?
Đó không phải là một câu hỏi ngu ngốc chút nào - chỉ là câu hỏi cơ bản. Không có hại khi yêu cầu hiểu rõ hơn về các nguyên tắc cơ bản về ngôn ngữ –
Cảm ơn bạn. Tôi cảm thấy điều này bằng cách nào đó nên rõ ràng, nhưng tôi vẫn không hiểu. –