Вопросы по теме '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 просмотров
schedule
02.01.2023
дизайн 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 просмотров
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