vitali1995
@vitali1995

Как в многопоточном программировании обрабатываются вложенные объекты?

Вопрос больше касается C#, но подойдут ответы с других языков - важен принцип. Если вопрос окажется непонятным - прошу уточнять.

Пример:

объект 1
- объект 2

объект 3
- объект 2

объект 4
- объект 1

объект 5
- объект 3

4 мутирует 1, а внутри обращается к 2.
5 мутирует 3, но затем также обращается к 2.
Объекты 4 и 5 работают в разных потоках. Мьютекс обеспечивает экран для объектов 1 и 3, но те в свою очередь обращаются к неэкранированному общему объекту 2

Вопрос: как правильно расставлять блокировки, чтобы с одной стороны не пропустить таких ситуаций, а с другой - не начать мутировать каждый объект в программе.
  • Вопрос задан
  • 270 просмотров
Пригласить эксперта
Ответы на вопрос 1
Объекты в единственном числе и содержат поля которые изменяются из разных мест параллельно?

Объекты вложенные или нет обрабатываются одинаково, вся проблема заключается в доступе к одному и тому же адресу в памяти на запись одновременно из разных потоков выполнения, когда многоядерный процессор пытается разными ядрами писать по одному адресу.
Такими адресами являются поля объектов.

Задача не совсем ясна, мало данных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы