У меня огромный класс X с ~ 40 сложными членами и многими вызовами функций чтения / записи (которые могут вызывать друг друга), которые я хочу сделать его поточно-ориентированным. Одним из простых подходов было бы добавить блокировку объекта в реализацию везде, где кто-то пытается прочитать / записать указанный c член. Но это привело бы к добавлению / изменению большого количества кода везде, где к любому члену обращаются. Помимо рефакторинга такого большого количества кода, для обычного читателя было бы сложно понять простую функцию. Кроме того, любой, кто обновляет класс в будущем, должен быть очень осторожен, чтобы не создавать возможности взаимоблокировки.
Есть ли какой-нибудь простой способ добиться этой синхронизации чтения-записи?