我需要为我的用户提供可设置的变量,例如 clojure AFAIK 提供的反射警告,它们没有在 clojure 端定义,这就是我们可以设置它们的原因。
问题是我的变量(所有配置的东西)在很多紧密的循环中使用,这就是为什么我不想让它们成为引用,因为它们可能在应用程序启动时被设置,并且在运行时没有变化,它们可能会被读取数百万次,因此让他们成为引用似乎是在浪费资源。
所以问题是我可以在我的情况下定义可设置的变量吗?
最佳答案
如果您希望所有线程都可以看到具有低开销的可设置全局状态,并且不需要任何 STM 事务来控制突变,我建议只使用原子:
(def some-global-value (atom 1))
读取和写入原子的开销极低。
关于clojure - 提供可设置的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6723953/