我对 Clojure 很陌生,你们能给我解释一下现实世界的场景吗?我的意思是,在哪里使用 Ref、Var、Agent、Atom。我读过书,但是仍然无法理解现实世界的例子。
我强烈推荐“The Joy of Clojure”或“programming Clojure”来真正回答这个问题,我可以重现每个动机的简短片段:
从观看开始这段关于身份概念的视频 http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey and/or 在这里学习 http://clojure-doc.org/articles/language/concurrency_and_parallelism.html.
- 参考文献用于协调同步访问“许多身份”。
- 原子是为了不协调同步访问单一身份。
- 代理是为了不协调异步访问单一身份。
- 变量用于线程本地孤立的身份具有共享的默认值。
协调的当两个身份需要一起更改时,会使用访问权限,典型的例子是将资金从一个银行帐户转移到另一个银行帐户,它需要完全转移或根本不转移。
不协调当只有一个身份需要更新时使用访问权限,这是一种很常见的情况。
同步当呼叫预计要等到所有身份都已确定后再继续时,才使用访问权限。
异步访问是“即发即忘”,让身份在自己的时间内达到新的状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)