首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是一个很好的数据流并发的激励示例?

什么是一个很好的数据流并发的激励示例?
EN

Stack Overflow用户
提问于 2010-05-30 14:42:28
回答 3查看 1.9K关注 0票数 4

我理解数据流编程的基础知识,并在Clojure APIstalks from Jonas Boner、Groovy中的GPars等语言中遇到过它。我知道它在Io这样的语言中很流行(尽管我还没有研究过Io)。

我缺少的是一个令人信服的理由,在构建并发程序时,需要将数据流作为一个范例。为什么我要使用数据流模型而不是可变的state+threads+locks模型(在Java、C++等中常见)或角色模型(在Erlang或Scala中常见)或其他模型?

特别是,虽然我知道上述语言(以及Scala和Ruby)中的库支持,但我不知道有哪一个程序或库是这种模型的典型儿童用户。谁在使用它?为什么他们发现它比我提到的其他模型更好?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-18 20:07:16

我也有一个错误的例子。它没有实现干净的角色模型,也没有并发问题,但它使用了DF架构,并且非常流行:任何电子表格软件(例如MS Excel)。

当你修改一个单元格时,它会向引用它的单元格发送“重新计算”信号。尽管如此,当你处理一个越来越大的工作表时,你可以感受到数据流编程的真正滋味--工作的重点将会改变:

  • 创建公式失去了最初的重要性(你会发现自己只是克隆了同样的3-4个公式),
  • 布局变得更加重要:重新组织引用,将长公式拆分为较短的公式,隐藏参数,最后根据数据形成图形。

如果我们意识到,公式是组件,引用是消息,我们就会得到数据流编程的常用方法:首先,我们创建一些组件,然后用它们构建一个数据流图。如果组件太大,我们会将它们拆分成较小的组件。最后,我们选择一个可视化组件来呈现令人眼花缭乱的结果。

票数 3
EN

Stack Overflow用户

发布于 2010-06-07 05:39:45

我有一个很好的“海报孩子”(我喜欢这个术语)给你。我猜想,你以前从未见过它,但你可能听说过。

我认为,几乎所有的现代数字同步器和采样器都有某种数据流架构。让我来告诉你它们是如何工作的。

我不确定是否罗兰JV-1080是第一个,但它是最著名的4层声音发生器方案的合成器。当您按下键盘上的某个键时,会启动一个补丁程序。它由1.4个发音器组成。声音发生器是一系列部件:振荡器、滤波器、信封、放大器。JV-1080能够一次播放64个声音发生器。活动声音生成器的输出进入效果配置。声音发生器路径是“硬连线”的,您可以选择效果总线的入口点和数量。

罗兰JV-1080的效果总线有4个入口点:干,自定义效果,唱诗班,混响,并有主要的输出。effect总线是固定的,但所有effects的输出都连接到所有其他effects,这些effects位于它的最右边,所以您可以通过将数量设置为零来“删除连接”。

Alesis 系列(QuadraSynth,QS6-7-8-R和x.1版本)具有类似的音响架构,效果系统类似...除了,您可以从3 FX配置中选择一个。一个FX配置是为管风琴(QS有令人难以置信的Leslie仿真):Leslie,合唱团,混响;另一个FX配置有两个混响。在如何利用齿轮的马力方面,你有更多的自由。

这些合成器很棒,但当你遇到Clavia Nord模块化时,你会忘记它们。它没有4层架构,也没有FX配置。它附带了一个win32程序,一个数据流编辑器。有各种组件:振荡器,滤波器,包络发生器等,您可以绘制您的配置。你应该画一个传统的4层声音发生器,但如果你愿意,你甚至可以画一个99层的声音发生器。它只是简单的摇滚乐。(不得不说,DF并不是一切:罗兰合资公司有44.1 kHz样本频率,QS有48k,模块化有96k。)

Clavia有另一条合成线路: Nord Lead。内部有Modular的引擎(参数和声音是完全相同的),但你不能使用数据流编程器来实现这些模型。它们有一个固定的路径,有很多参数,但你不能改变路由。此外,还有针对模块化的Nord Lead补丁集:编辑器中的所有路径看起来都是相同的,只是参数不同。

下面是一个模块化补丁示例http://www.clavia.se/pictures/nordmodular/patchwindowlarge.jpg

如果您对synth示例不满意,例如,因为您是C程序员,下面是另一个更熟悉的示例:

make -j

令我惊讶是,make是一个数据流系统,所以它可以同时运行“组件”,这意味着在多核机器上更快地编译。试试看!

票数 2
EN

Stack Overflow用户

发布于 2010-09-04 06:37:43

看看这个:http://www.synthedit.com/

它是一个用于VSTi的音频相关框架和组件集。我不知道它到底是怎么回事,但看起来作者用自己的一堆标准组件发布了软件,然后其他人可以通过编译DLL来附加他们的组件。

另外,我刚刚在附近抓到了一个家伙,我们在同一个邮件列表上,他创建了一个很好的TB303模拟器(著名的模拟老式synth),他使用SynthEdit作为框架创建了它。因此,如图所示,它可以用作框架,不存在技术(也不是bizmodel)困难。

所以,它值得一看,我在浏览文档时发现了很好的实现实践。尽管该网站不包含dataflow一词,而且文档应该进行更好的编辑,但该项目的精神是OK的。也有一些“第三方”组件开发人员。它有很好的GUI前端,至少是这样。

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

https://stackoverflow.com/questions/2937785

复制
相关文章

相似问题

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