Когда передаёшь объекты между потоками, самое главное – это потокобезопасность. Нужно понять, будут ли несколько потоков одновременно обращаться к одному и тому же объекту и изменять его.
Если два или больше потоков могут изменять один объект одновременно, могут возникнуть серьёзные проблемы:
Лучший подход – сделать общий объект неизменяемым. Неизменяемый объект:
Если неизменяемость невозможна, рассмотри следующие варианты:
synchronized для управления доступомВсегда проверяй, будут ли твои общие объекты использоваться одновременно из разных потоков. Если сомневаешься, закладывай неизменяемость с самого начала – это самый простой и надёжный способ обеспечить безопасную передачу объектов между потоками без багов и сложной логики синхронизации.
Неизменяемые объекты полностью устраняют все проблемы с параллелизмом при передаче между потоками, потому что они не могут быть изменены после создания и не требуют механизмов синхронизации.
Новый — ещё не проверен сообществом
Вы