Уникальность типов вместо STM

Сообщение на форуме указывает на то, что вместо STM используются уникальные типы. Я не понимаю, что это говорит. Как типы уникальности предполагают решение проблемы, которую STM пытается решить, например, когда несколько потоков обновляют одну и ту же переменную?

Я просмотрел статьи в Википедии о типах уникальности и линейных типах, и до сих пор не ясно, что означает сообщение на форуме.

1 ответ

Решение

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

Подходы для облегчения параллелизма включают в себя:

  • STM. С помощью STM данные все еще могут совместно использоваться и мутироваться несколькими потоками, но одновременные мутации обнаруживаются благодаря использованию транзакций.
  • Типы уникальности - с типами уникальности существует не более одной ссылки на объект. Таким образом, по определению, невозможно одновременно изменять одни и те же данные (вам нужно как минимум две ссылки, по одной на поток).
  • Неизменность. Избегайте проблемы одновременных мутаций и делитесь только неизменными данными.
  • Действующие лица - действующие лица полагаются на асинхронные сообщения и сериализуют получаемые сообщения, таким образом избегая одновременных изменений.
Другие вопросы по тегам