@Alex00qqw

Почему в функциональное программирование считается потокобезопасным?

Вопрос, почему ФП считается потокобезопасным? А если в памяти приложения нужно хранить общую информацию например очередь сообщений или что-то подобное. Какой подход используется в ФП для этого?
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
ФП программа не хранит состояние/state, кототое бы могли конкурентно изменять потоки. А в чистом ФП и именования должны быть неизменными/immutable. То есть в чистом ФП конструкция
something = 2
something = 3
нелегальна, противоестественна. Если something = 2, то это навсегда и не может вдруг стать =3. При таком подходе потоки не могут получить одновременный доступ к одному месту в памяти пытаясь изменить переменную состояния. Для обмена данными между потоками можно только использовать специальные примитивы защищеннные под капотом механизмами синхронизации операционной системы(вроде Mutex или Atomic). Например очередь сообщений может быть представлена списком/list которым нельзя манипулировать напрямую, а только методами Queue.Put() Queue.Get(). И в реализации этих методов уже зашиты блокировки от параллельного доступа к памяти.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
BuildSafe Tech Санкт-Петербург
от 120 000 руб.
от 80 000 до 115 000 руб.
Digital Wing (DigitalWing) Санкт-Петербург
от 50 000 руб.