首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展clojure core.async的功能

扩展clojure core.async的功能
EN

Stack Overflow用户
提问于 2013-10-31 06:08:01
回答 1查看 495关注 0票数 5

是否建议用我自己的异步函数扩展core.async的功能?

通道的异步由接受回调的put!take!处理,但是协议嵌套在async.impl.protocols命名空间中。我的意思是离远点!在这种情况下,还是可以实现它们?

例如,我可以将netty通道或java套接字包装为ReadPort和WritePort。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-05 05:38:57

core.async协议的意图是充当实现自己的缓冲区、通道、端口等的实现钩子。它们存在于impl下,因为它们是实现的一部分,而不是公共用户API。

团队认为,在库的非alpha版本发布之前,它们是可以更改的(我没有这方面的时间框架)。从异步的发布到现在协议还没有改变,但是在这个时刻,进程中有一个突破性的变化,特别是put!take!

如果您现在愿意处理捕捉更改的问题,可以随意实现。

time花了相当长的时间研究如何将异步通道连接到网络上,在保持通道语义的同时做到这一点是很有挑战性的。现在推荐的模式是使用专用线程与网络I/O对话,并“在边缘”与应用程序中的通道进行通信(可能使用put!take!)。这种模式不需要实现内部协议。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19699508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档