С точки зрения фактического низкого уровня атомарные инструкции и заборы памяти (я предполагаю, что они используются), как Вы реализуете STM? Часть это таинственно мне, то, что, учитывая некоторый произвольный блок кода, Вас...
Кажется, что был недавний возрастающий интерес к STM (программное обеспечение транзакционная память) расширения языка и платформы. Clojure в особенности имеет превосходную реализацию, которая использует MVCC (...
What is the difference between Clojure STM (dosync) approach and Java synchronize Block? I'm reading the code below from "The sleeping barber" problem. (http://www.bestinclass.dk/index.clj/2009/09/...
Я ищу некоторую библиотеку C, которая включает STM-стиль (программное обеспечение Транзакционная Память) карты хеша, но у меня не было удачи до сих пор. Было бы замечательно, если бы это было на основе бойкого / gobject, но дело не в этом...
Что происходит, когда Вы создаете вложенные вызовы dosync? Подтранзакции будут завершены в родительском объеме? Действительно ли эти подтранзакции обратимы, если родительская транзакция перестала работать?
Я работал над платой stm32l475vg с библиотекой mbed и хочу управлять всеми 4 светодиодами платы. Проблема в том, что mbed настраивает led3 и led4 к одному. В файле PinNames.h ...
Проведя много времени на разработку соответствующего корпуса (например, стоп-слова, tf-idf), я создал dtm в tmpackage и запустил мою тему. Затем я начал сравнивать темы с некоторым уровнем документа ...
Где находится mysql client .my.cnf с использованием XAMPP в Windows? Уточнение: этот файл не существует по умолчанию, поэтому, когда вы его создаете, где вы должны разместить его, чтобы использовать команду ...
Я знаю, что, как правило, помещать функции с побочными эффектами в транзакции STM - плохая практика, поскольку они потенциально может быть повторен и вызван несколько раз. Однако мне приходит в голову, что вы ...
Я пытаюсь найти различия между тем, что Clojure вызывает STM и то, что реализовано в Haskell как STM. Если отвлечься от фактических языковых семантических различий, я немного сбит с толку, как Rich ...
Я использую микроконтроллер на основе STM32F10x и общаюсь с ведомым устройством. Кажется, все работает до того момента, когда я посылаю подчиненному устройству команду на чтение данных, но ...
исходный вопрос Я новичок в STM.Одна вещь, которую я хотел бы сделать в Haskell, включает в себя большой фрагмент данных и множество легковесных потоков, читающих и записывающих небольшие части этого большого фрагмента данных. ...
Недавно я задал ряд вопросов о TVar, и у меня все еще есть опасения по поводу livelock. Итак, я подумал об этой структуре:Каждая транзакция получает уникальный приоритет (, возможно, выделенный в...
Это теоретический вопрос, мотивированный моим желанием лучше понять параллелизм Clojure. Допустим, я пишу boids. Предположим, что каждый боид представляет собой отдельную зеленую нить, мутирующую позиции в...
Вызывается ли «else» часть orElse, когда транзакция повторяется из-за того, что другая транзакция записывает в TVar, который она прочитала, или только когда повтор вызывается явно?
Я рассматриваю возможность использования TVar для хранения некоторого состояния в веб-приложении (, которое можно воссоздать при перезапуске). Однако меня беспокоят спорные аспекты TVar. Кажется, частый короткий запуск...
В веб-приложении я пытаюсь сгенерировать уникальный потокобезопасный идентификатор из ограниченного пула идентификаторов. Проблема, с которой я столкнулся, заключается в том, что между чтением и записью другой поток уже мог изменить данные...
Я заметил эту идиому в Data.Unique: uniqSource: : TVar Целое число
uniqSource = unsafePerformIO (новыйTVarIO 0)
{- # NOINLINE uniqSource # -} Гарантированно ли он запускается только один раз?
Когда следует предпочесть Akka TransactionalMap обычной неизменяемой карте, смешанной с SynchronizedMap, и наоборот? (Или я здесь сравниваю яблоки с апельсинами?)
Я провел некоторое исследование реализаций STM (программной транзакционной памяти), в частности алгоритмов, которые используют блокировки и не зависят от наличия сборщик мусора в ...
Есть ли веская причина, по которой check function в библиотеке Contol.Concurent.STM имеет тип Bool -> STM a и возвращает undefined при успехе, а не имеет тип Bool -> STM ()? Как это ...
Я использовал библиотеку STM Haskell, и мне очень нравится возможность составлять транзакции и общее «вы-не-получить-это-» неправильный "характер СТМ". По уважительной причине STM не позволяет выполнять операции ввода-вывода ...
Есть ли способ увеличить временной интервал, на основании которого RTS решает, что поток заблокирован на неопределенный срок в транзакции STM?
Вот мой код: import Control.Concurrent (ThreadId)
...
Я новичок в Скале и Акке, так что простите меня, если это новый вопрос, но я больше нигде не могу найти ответ... Для протокола я использую Scala 2.9.0-1 и Akka 1.1.3 и включил мой SBT 0.10.....
Я видел, что TVar - это простой контейнер, а TMVar - это то же самое, что и MVar, что означает, что у него есть блокировка и т.д., но внутри STM монада. Мне интересно, зачем это нужно, так как идея ...
Я новичок в Scala и Akka и подумываю использовать его для решения проблемы. Предположим, у меня есть вычислительная машина (которая ищет решение). Я хотел бы распараллелить этот поиск как по процессорам, так и по ...
Учитывая, что STM хранит историю, скажем, из 10 значений ссылок, агентов и т.д., можно ли прочитать эти значения? Причина в том, что я обновляю загрузку агентов, и мне нужно вести историю значений. Если STM ...
Я пишу программу, в которой большое количество агентов прослушивает события и реагирует на них. Поскольку Control.Concurrent.Chan.dupChan устарел, я решил использовать TChan, как было объявлено. Производительность ...
Я пишу программу clojure, которая использует STM. В настоящий момент я заполняю STM (используя refs) при запуске из базы данных, а затем асинхронно обновляю базу данных всякий раз, когда выполняется dosync ...