在书中讲述 传递顺序过程 花了很多时间来定义事件,这些事件没有方向,可能涉及多个独立的过程。
仅在第4章中介绍了引导的渠道,这些渠道是针对2个流程的。
然而,包括occam,Go,LuaCSP和clojure.core.async在内的所有CSP实现仅实现了通道。
尽管大多数实际问题都可以用(广播)频道解决,但我想知道为什么这本书花费了很多时间在他们身上而没有人使用它们。
在书中讲述 传递顺序过程 花了很多时间来定义事件,这些事件没有方向,可能涉及多个独立的过程。
仅在第4章中介绍了引导的渠道,这些渠道是针对2个流程的。
然而,包括occam,Go,LuaCSP和clojure.core.async在内的所有CSP实现仅实现了通道。
尽管大多数实际问题都可以用(广播)频道解决,但我想知道为什么这本书花费了很多时间在他们身上而没有人使用它们。
在Occam-pi中,障碍是渠道的重要辅助手段。有了障碍,每个登记过程都会等待障碍,直到他们全部完成。此时他们都被释放了。这是非通道形式的CSP事件的示例。
Occam-pi还使用频道进行扩展会合。这是一种完全不同的频道使用模式,非常类似于Ada的集合点。
在Occam-pi中,障碍是渠道的重要辅助手段。有了障碍,每个登记过程都会等待障碍,直到他们全部完成。此时他们都被释放了。这是非通道形式的CSP事件的示例。
Occam-pi还使用频道进行扩展会合。这是一种完全不同的频道使用模式,非常类似于Ada的集合点。
首先,这本书 发生在以前 实施。因此,您的问题更好地表达为:
为什么没有CSP的实施把重点放在事件上,即使这本书非常强调它们。
基本上,将事件作为语言的一等公民,使其具有一定的使用特性,这可能对于a 通用编程语言。
此外,您可以轻松地在通道(和其他构造)上实现事件,以防您进入 事件驱动编程。