【发布时间】:2016-02-11 14:16:18
【问题描述】:
我在这里阅读了这篇关于 core.async 的精彩文章:
http://www.core-async.info/reference/primitives
我很难理解 put 的内部机制!去。我明白了:
- 放!是异步的,可以接受回调。这在简单的场景中效果很好,但你可能会以回调地狱告终。
- go 修复了回调地狱,并允许以同步风格编写异步代码。
- go 利用轻量级线程池,并利用停放来启用并发性。
- go 使用有限状态机
我不明白:
- 怎么放!实现异步?它还使用线程池吗?
- 放!也使用停车场?
- 有限状态机在 go 块中的作用是什么?是它可以停车吗?
- 我应该总是尝试使用 put!而不是因为它更便宜而去?那样的话,是不是就意味着放!实现与 go 完全相同的并发性能,并且 go 仅在我想推理复杂的异步代码时使用?
非常感谢您解开这些谜团。
【问题讨论】:
标签: clojure core.async