У меня есть серия логически связанных коллекций объектов A, B и C, к которым имеют доступ потоки записи, потоки только для чтения и потоки чтения-записи.
Каждый объект A может иметь несколько связанных объектов B, и каждый объект B может иметь несколько связанных объектов C. Один объект B может быть связан только с одним объектом A, и, аналогично, один объект C может быть связан только с одним объектом B и A. Это означает, что при обновлении A все связанные B и C также должны быть заблокированы, и, наоборот, при обновлении C соответствующие B и A также блокируются?
Как мне добиться синхронизации такой структуры?