私が必要とするのは、タスクを配置し、ワーカーから1つずつ取得できる単純なキューです(タスクの順序を維持せずに)。
私はこのようなものを書きました:
;; Definition
(def q (ref []))
;; Put
(defn put-in-queue [i]
(dosync (alter q conj i)))
;; Get
(defn get-from-queue []
(dosync
(let [v (peek q)]
(alter q pop)
v)))
正解ですか?(おそらく、このタスクにはより良い解決策もあります)