(def queue-agent (agent (clojure.lang.PersistentQueue/EMPTY)))
(send queue-agent conj "some data for the queue")
(println "test output")
如果我運行此代碼,幾秒鐘後控制檯將輸出test output
然後什麼也沒有發生(程序沒有終止)。我剛剛檢查了幾個源代碼,都說send
函數是異步的,應該立即返回到調用線程。那麼這有什麼問題?爲什麼它不回來?我有什麼問題嗎?或者與我的環境?Clojure代理的發送功能被阻止
我運行的Clojure版本'1.5.1'順便說一句,如果有幫助。 – Peter
你使用默認的'send'執行器嗎? (你有沒有叫'set-agent-send-executor!'來指定你自己的執行程序,可能有一個有界的隊列?) –
是的,我只是使用默認的'send'執行程序,在這裏沒有改變任何東西。 – Peter