Если у меня есть следующий код
class SomeClass {
...
public synchronized methodA() {
....
}
public synchronized methodB(){
....
}
}
Это будет синхронизировано с объектом this.
Однако, если моя главная цель здесь состоит в том, чтобы убедиться, что несколько потоков не используют methodA (или methodB) одновременно, но они МОГУТ одновременно использовать methodA AND methodB,
тогда такой дизайн ограничен? так как здесь thread1 блокирует объект (объект монитора, связанный с объектом) для запуска метода A, но в то же время поток 2 также ожидает блокировки объекта, даже если methodA и method B могут работать одновременно.
Это понимание правильно?
Если да, то это такая ситуация, когда мы используем синхронизированный блок для частного фиктивного объекта, чтобы methodA и methodB могли работать параллельно с другим потоком, но не methodA (или methodB) с другими потоками.
Благодарю.