Программирование без блокировок на Haskell

Кто-нибудь знает, возможно ли программирование без блокировок на Haskell? Меня интересует как вопрос о том, доступны ли соответствующие низкоуровневые примитивы, так и (если они есть) какая-либо информация о том, что работает с точки зрения их использования для построения работающих более крупномасштабных систем в чисто функциональном контексте. (Я никогда раньше не занимался программированием без блокировок в чисто функциональном контексте.) Например, как я понимаю, каналы Control.Concurrent.Chan построены на основе MVars, которые (насколько я понимаю) используют блокировки - -Можно ли в принципе создавать версии примитива Чан, которые не заблокированы внутри? На какой прирост производительности можно надеяться получить?

Я должен также сказать, что я знаком с существованием TVar, но не понимает их внутреннюю реализацию --- мне дали чтобы понять, что они в основном свободны от блокировки, но я не уверен, что они полностью свободны от блокировки. Так что любая информация о внутренней реализации TVars тоже будет полезна!

( Эта ветка содержит некоторые обсуждения, но мне интересно, есть ли что-нибудь более актуальное / более исчерпывающее.)

8
задан Robin Green 20 May 2018 в 13:42
поделиться