Задать вопрос
vitali1995
@vitali1995

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

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

Пример:

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

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

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

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

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

Вопрос: как правильно расставлять блокировки, чтобы с одной стороны не пропустить таких ситуаций, а с другой - не начать мутировать каждый объект в программе.
  • Вопрос задан
  • 271 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • Учебный центр IBS
    DEV-001_NET Шаблоны проектирования GoF. Редакция для .NET
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
Объекты в единственном числе и содержат поля которые изменяются из разных мест параллельно?

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

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

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

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