Уникальность типов вместо STM
Сообщение на форуме указывает на то, что вместо STM используются уникальные типы. Я не понимаю, что это говорит. Как типы уникальности предполагают решение проблемы, которую STM пытается решить, например, когда несколько потоков обновляют одну и ту же переменную?
Я просмотрел статьи в Википедии о типах уникальности и линейных типах, и до сих пор не ясно, что означает сообщение на форуме.
1 ответ
Решение
Разработка систем, в которых данные совместно используются и мутируют одновременно несколькими потоками, является сложной задачей.
Подходы для облегчения параллелизма включают в себя:
- STM. С помощью STM данные все еще могут совместно использоваться и мутироваться несколькими потоками, но одновременные мутации обнаруживаются благодаря использованию транзакций.
- Типы уникальности - с типами уникальности существует не более одной ссылки на объект. Таким образом, по определению, невозможно одновременно изменять одни и те же данные (вам нужно как минимум две ссылки, по одной на поток).
- Неизменность. Избегайте проблемы одновременных мутаций и делитесь только неизменными данными.
- Действующие лица - действующие лица полагаются на асинхронные сообщения и сериализуют получаемые сообщения, таким образом избегая одновременных изменений.