Идиоматический способ Clojure для создания фоновых потоков и управления ими

Каков идиоматический способ Clojure создать поток, который в цикле в фоновом режиме обновляет некоторые общие ссылки и управляет их временем жизни? Я обнаружил, что использую для этого future , но это похоже на небольшую хитрость, поскольку я никогда не возвращаю значимое значение. Например:

(future (loop [] (do
    (Thread/sleep 100)
    (dosync (...))
    (recur))))

Кроме того, мне нужно быть осторожным, чтобы future-cancel , когда фоновая обработка больше не нужна. Любые советы о том, как организовать это в приложении Clojure / Swing, были бы хороши. Например, фиктивный JComponent , который добавлен в мой пользовательский интерфейс, который отвечает за завершение потока при закрытии окна, может быть идеей.

15
задан pauldoo 13 March 2011 в 18:28
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: