Clojure 使用pmap增加计数器但忽略的值
那么,为什么富不是10003呢Clojure 使用pmap增加计数器但忽略的值,clojure,Clojure,那么,为什么富不是10003呢 与懒惰有关吗?来自pmap的文档: 半懒惰,因为并行计算保持在消耗之前,但不 除非需要,否则实现整个结果。仅适用于 计算密集型函数,其中f的时间占主导地位 协调开销 所以是的,它只是实现了一些元素。尝试将pmap包装在doall中,您将看到预期的结果 (swap! foo (fn [old] 3)) (pmap (fn [_] (swap! foo inc)) (range 10000)) @foo ;It prints 1027, whic
与懒惰有关吗?来自
pmap
的文档:
半懒惰,因为并行计算保持在消耗之前,但不除非需要,否则实现整个结果。仅适用于
计算密集型函数,其中f的时间占主导地位
协调开销 所以是的,它只是实现了一些元素。尝试将
pmap
包装在doall
中,您将看到预期的结果
(swap! foo (fn [old] 3))
(pmap
(fn [_] (swap! foo inc))
(range 10000))
@foo ;It prints 1027, which is smaller than 10000.