【发布时间】:2013-10-16 13:46:50
【问题描述】:
我需要的是简单的队列,我可以在其中放置任务并从工作人员那里一个接一个地检索它们(不维护任务的顺序)。
我是这样写的:
;; 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)))
这是正确的解决方案吗? (也许这个任务也有更好的解决方案)
【问题讨论】:
标签: concurrency clojure atomic