Вопросы по теме 'core.async'
Можем ли мы описать Clojure core.async как «стиль передачи продолжения»?
В библиотеке core.async мы видим файл макрос, создающий конечный автомат , который охватывает go блоков для создания каналов, которые обрабатывают блокировка ввода-вывода.
Похоже, это моделирование C# async и на горутины Go-lang ....
844 просмотров
schedule
07.12.2022
Предотвратить завершение программы во время бесконечного выполнения блоков go?
Я написал автономный uberjar с основным методом, который запускает два блока go следующим образом:
(defn -main [& args]
(let [c (chan)]
(go (while true
(>! c (rand))))
(go (while true
(<! c)))))
Но...
264 просмотров
schedule
13.11.2022
Clojure, как остановить все блоки go или закрыть все каналы в core.async
все слишком часто, когда я использую core.async из блока repl, a go ускользает от меня, потому что я теряю канал, который используется для его остановки, потому что я перезагружаю пространство имен. Например, если я запускаю это из repl:
(go...
1628 просмотров
schedule
04.06.2023
Clojurescript + Om: дождитесь изменения состояния, затем сделайте что-нибудь
Я пытаюсь создать приложение Clojurescript, которое показывает рецепты.
Далее следует соответствующий код (также доступен как суть ):
(defn load-recipes [data]
(go (if (not (:loaded? @data))
(let [recipes-data (<! (fetch-recipes...
720 просмотров
schedule
18.07.2023
Создание атома clojurescript, который работает с частотой сердцебиения
(ns example.asyncq
(:require
[cljs.core.async :as async]
goog.async.AnimationDelay)
(:require-macros
[cljs.core.async.macros :refer [go go-loop]]))
(defn loop-fx-on-atm-when-pred?-is-true [atm fx pred?]
(let [c (async/chan)
f...
242 просмотров
schedule
13.05.2022
Несколько блоков прослушивания/перехода для канала в ClojureScript
Учитывая канал в ClojureScript
(def navigation (chan))
Возможно ли иметь несколько блоков go, которые извлекают из него значения? Например.
(go
(while true
(secretary/dispatch! (<! navigation))))
(go
(while true
(println...
627 просмотров
schedule
21.06.2023
Core.async ‹! тупик канала
Почему Alpha останавливается раньше, когда я ожидаю, что она будет вести себя как Beta? Единственная разница между Alpha и Beta — это >! и put! , как указано ниже.
Альфа:
user=> (def q (chan))
#'user/q
user=> (def counter (atom...
293 просмотров
schedule
07.05.2023
Как надежно выполнять большое количество одновременных HTTPS-запросов в Clojure (/Java)
У меня есть поток входных данных, и я хочу сделать 2 HTTPS сетевых запроса для каждого, прежде чем передавать результат в другую часть программы. Типичная пропускная способность составляет 50 в секунду.
for each input:
HTTP request A...
1449 просмотров
schedule
17.08.2023
Использование содержимого файла с помощью Clojure core.async
Я пытаюсь использовать библиотеку Clojure core.async для использования/обработки строк из файла. Когда мой код выполняется, IOException: Stream closed является броском. Ниже приведен сеанс REPL, который воспроизводит ту же проблему, что и в...
693 просмотров
schedule
13.09.2022
Thread/sleep внутри блока Clojure go
У меня внутренний конфликт по поводу использования Thread/sleep внутри блока go Clojure. Обычно не рекомендуется иметь какие-либо длительные процессы внутри блоков go, и Stuart Sierra упоминает, что сон в блоке go не предпочтителен :
В общем,...
1533 просмотров
schedule
01.11.2023
Использование канала в case
(let [a (clojure.core.async/chan)]
(case a
a :foo
:bar))
#=> :bar
Я бы ожидал :foo здесь. Что я делаю не так?
С другой стороны, (condp = chan ...) выполняет свою работу.
PS:
В основном я пытаюсь сделать следующее:...
70 просмотров
schedule
24.10.2023
clojure core.async — неожиданные несоответствия
я не занимался Clojure пару лет, поэтому решил вернуться и не игнорировать core.async на этот раз) довольно крутая штука, но это меня почти сразу удивило. Теперь я понимаю, что существует неотъемлемая индетерминизм, когда задействовано несколько...
241 просмотров
schedule
10.10.2023
Clojure core.async и c10k
Насколько мне известно, асинхронные приложения с пулом потоков используются для того, чтобы не создавать новый поток для каждого соединения. Когда это решается с помощью блоков go в core.async, где сокет IO может быть припаркован, как это возможно...
135 просмотров
schedule
23.05.2022
clojure core async и servlet undeploy
Я использую Clojure core.async в программе сервлета. Я подозреваю утечку памяти в программе, и я обнаружил, что общее количество живых потоков не уменьшается, когда я отменяю развертывание своего приложения с сервера приложений (Glassfish).
У...
70 просмотров
schedule
14.07.2022