Вопросы по теме 'stm'

Блок синхронизации Clojure STM (dosync) x Java
В чем разница между подходом Clojure STM (dosync) и блоком синхронизации Java? Я читаю приведенный ниже код из проблемы «Спящий парикмахер». ( http://www.bestinclass.dk/index.clj/2009/09/scala-vs-clojure-round-2-concurrency.html ) (defn...
2807 просмотров

дизайн scala/akka/stm для большого общего состояния?
Я новичок в Scala и Akka и рассматриваю возможность их использования для решения проблемы. Предположим, у меня есть вычислительная машина (которая ищет решение). Я хотел бы распараллелить этот поиск как между процессорами, так и между узлами,...
917 просмотров
schedule 01.07.2023

Чисто тестирование функций STM
Недавно я начал использовать STM для некоторых частей своего проекта, но мне трудно понять, как его протестировать. У меня нет IO в этих функциях, и я надеялся, что смогу написать свойства QuickCheck для проверки вещей, но «атомарно» (STM a -> IO...
255 просмотров
schedule 24.06.2023

Haskell: TVar: предотвращение голодания
Я рассматриваю возможность использования TVar для хранения некоторого состояния в веб-приложении (которое можно воссоздать при перезапуске). Однако меня беспокоят спорные аспекты TVar. Кажется, что частая короткая транзакция может привести к...
791 просмотров
schedule 03.10.2023

Functional Banana Traveler — обработка ввода
Это подзадача моего проекта Traveller . Я собрал элементарный код, который будет обрабатывать ввод. Это работает, пока я не добавлю в микс TChan . Ниже приведен рабочий код с примером его использования. Затем я изменю его и объясню, почему я...
171 просмотров
schedule 07.11.2022

Есть ли ошибка в этом решении clojure для спящего парикмахера?
Это представлено как решение проблемы спящего парикмахера . (Приписывается CGrand, но я нашел ссылку здесь ) Меня интересует блок dosync в enter-the-shop . Насколько я понимаю, это транзакция, и поэтому empty-seats останется...
250 просмотров
schedule 30.04.2024

Нужна ли по-прежнему логическая блокировка при написании программного обеспечения STM?
Я не писал ничего, связанного с STM (Software Transactional Memory), только читал информацию в Интернете. Так вот просто воображаемый пример Предположим, у нас есть буфер FIFO с максимально допустимым количеством элементов в нем. Таким образом,...
102 просмотров
stm
schedule 07.06.2022

Haskell STM всегда успешен
В библиотеке stm haskell есть функция со следующей сигнатурой типа: alwaysSucceeds :: STM a -> STM () Из того, что я понимаю о STM в haskell, есть три способа, которыми что-то может «пойти не так» (используя этот термин в широком смысле)...
478 просмотров
schedule 29.01.2023

Безопасно ли использовать трассировку внутри STM-транзакции?
У меня по какой-то причине транзакция завершается бесконечно, и я хотел бы использовать инструкции трассировки внутри. Например, чтобы напечатать состояние MVar перед выполнением транзакции в этом фрагменте: data_out <- atomically $ do...
183 просмотров
schedule 08.02.2024

Досинхронизация Clojure внутри будущего против будущего внутри досинхронизации
У меня есть следующий фрагмент кода (def number (ref 0)) (dosync (future (alter number inc))) ; A (future (dosync (alter number inc))) ; B Второй успешно, но первый терпит неудачу с no transaction is running . Но он завернут в досинк,...
89 просмотров
schedule 23.03.2024

Как выполнять параллельные транзакции в Clojure
У меня есть последовательность клиентов, которую нужно обрабатывать параллельно. Я пытался использовать pmap для этого. Результат мучительно медленный, намного медленнее, чем последовательная реализация. Внутренняя функция process-customer...
162 просмотров
schedule 10.04.2022