多线程 – 同步计数器在clojure

前端之家收集整理的这篇文章主要介绍了多线程 – 同步计数器在clojure前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我想保留一个全局计数器(例如,计算跨多个线程的传入请求数),那么在 java中最好的方式是使用volatile int.假设使用clojure是否有更好的(更好的吞吐量)方式?

解决方法

我会在Clojure中用 atom做这个:
(def counter (atom 0N))

;; increment the counter
(swap! counter inc)

;; read the counter
@counter
=> 1

这是完全线程安全的,令人惊讶的高性能.此外,由于它使用Clojure的精确数字处理,所以它不容易受到整数溢出的影响,因为volatile int可以是…..

猜你在找的Java相关文章