Clojure лучший способ достигнуть нескольких потоков?

Я работаю над клиентом MUD, записанным в Clojure. Прямо сейчас мне нужны два различных потока. Тот, который получает вход от пользователя и отсылает его в MUD (через простой Сокет), и тот, который читает и отображает вывод от MUD пользователю.

Я должен просто использовать Потоки Java или являюсь там некоторой Clojure-определенной функцией, к которой я должен обращаться?

11
задан Timothy McDowell 30 March 2010 в 19:16
поделиться

1 ответ

Я бы порекомендовал использовать функцию pcalls, например:

(defn- process-server-responses []
  (prn "server connected")
  (. java.lang.Thread sleep 1000)
  (prn "server disconnected"))

(defn- process-client-input []
  (prn "client-input start")
  (. java.lang.Thread sleep 1000)
  (prn "client-input stop"))

(pcalls process-server-responses process-client-input)

Вывод для вышеуказанного:

"server connected"
"client-input start"
"server disconnected"
"client-input stop"

Документы для pcalls здесь:

http://richhickey.github.com/clojure/clojure.core-api .html # clojure.core / pcalls

8
ответ дан 3 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

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