是否建议用我自己的异步函数扩展core.async的功能?
通道的异步由接受回调的put!和take!处理,但是协议嵌套在async.impl.protocols命名空间中。我的意思是离远点!在这种情况下,还是可以实现它们?
例如,我可以将netty通道或java套接字包装为ReadPort和WritePort。
发布于 2014-02-05 05:38:57
core.async协议的意图是充当实现自己的缓冲区、通道、端口等的实现钩子。它们存在于impl下,因为它们是实现的一部分,而不是公共用户API。
团队认为,在库的非alpha版本发布之前,它们是可以更改的(我没有这方面的时间框架)。从异步的发布到现在协议还没有改变,但是在这个时刻,进程中有一个突破性的变化,特别是put!和take!。
如果您现在愿意处理捕捉更改的问题,可以随意实现。
time花了相当长的时间研究如何将异步通道连接到网络上,在保持通道语义的同时做到这一点是很有挑战性的。现在推荐的模式是使用专用线程与网络I/O对话,并“在边缘”与应用程序中的通道进行通信(可能使用put!和take!)。这种模式不需要实现内部协议。
https://stackoverflow.com/questions/19699508
复制相似问题