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

2024-04-24

我了解数据流编程的基础知识,并且在Clojure API http://richhickey.github.com/clojure-contrib/dataflow-api.html, 乔纳斯·博纳的演讲 http://www.slideshare.net/jboner/state-youre-doing-it-wrong-javaone-2009, GPars http://gpars.codehaus.org/Dataflow我知道它在像 Io 这样的语言中很流行(虽然我没有研究过 Io)。

我缺少的是在构建并发程序时关心数据流作为范例的令人信服的理由。为什么我要使用数据流模型而不是可变状态+线程+锁模型(常见于 Java、C++ 等)或参与者模型(常见于 Erlang 或 Scala)或其他模型?

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


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

当您修改单元格时,它会向引用它的单元格发送“重新计算”信号。不过,当您处理的工作表变得越来越大时,您可以感受到数据流编程的真正味道 - 工作的重点会发生变化:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据流并发的一个很好的激励示例是什么? 的相关文章

  • 您可以从多个线程访问单个 std::unique_lock 吗?

    我在概念化如何unique lock应该是跨线程操作 我尝试制作一个快速示例来重新创建我通常会使用的东西condition variable for include
  • 重用 Runnable 的最佳方式

    我有一个实现的类Runnable目前我正在使用 Executor 作为线程池来运行任务 将文档索引到 Lucene executor execute new LuceneDocIndexer doc writer 我的问题是我的 Runna
  • 如何尽快有效地发出数千个网络请求

    我需要从 C 控制台应用程序发出 100 000 个轻量级 即小内容长度 Web 请求 我可以做到这一点的最快方法是什么 即在尽可能短的时间内完成所有请求 以及我应该遵循哪些最佳实践 我不能一劳永逸 因为我需要捕获响应 大概我想用async
  • Callable 应该优先于 Runnable 吗?

    我已经明白了之间的区别Runnable and CallableJava 中的接口 从 Java 1 5 开始 添加了额外的功能Runnable接口并被调用Callable以保持向后兼容性 我的问题是现在我们有Callable接口 我们应该
  • Java 执行器无法对任务进行排队

    我需要一个 Java 执行器 如果正在处理其他任务 它会拒绝任务 我想不可能操纵工作队列大小 有人可能会奇怪 为什么我首先需要一个具有这种特征的执行者 我需要能够轻松更改策略并允许非零队列大小 有任何想法吗 Use a 线程池执行器 htt
  • 为什么 2 和 4 在 b 之前打印?

    function first return new Promise resolve gt console log 2 resolve 3 console log 4 async function f console log 1 let r
  • Clojure 的 Atom 在 Scala 中相当于什么?

    Clojure 有一个原子 http clojure org atoms for 以同步且独立的方式改变线程之间的状态 http clojure org concurrent programming 这不是 STM 的一部分 https s
  • 多线程编程中什么是公平性?

    什么是线程公平性或并发 多线程编程中的公平性 我用谷歌搜索过 有很多关于多线程的信息 但不完全是关于公平性的 有人可以解释一下吗 非常欢迎举一个例子 公平性基本上类似于不同线程能够advance无论他们在做什么 100 公平意味着 所有线程
  • 使用递归函数进行并行编程?

    问题背景 我正在尝试编写一个利用多核处理器和并行处理的难题解决算法 然而 理想 最简单的解决方案是简单的递归函数 分解解决方案以利用并行处理的最佳方法是什么AND递归函数 下面的代码是一个简单的解谜算法的解决方案 它工作正常 此示例中的谜题
  • Java中的并发排序

    我目前正在开发一个同时对字符串进行排序的程序 我的程序接收一个文件 将文件的每一行读入一个数组 并将字符串数组拆分为更小的字符串数组 然后 程序为每个较小的数组启动一个线程 并对它们进行快速排序 一旦每个线程完成对其数组的排序 主线程就会从
  • @MainActor 类是对主要参与者的扩展吗?

    如果正在上课 MainActor MainActor class MyClass NSObject 这是否将其所有扩展放在 MainActor还有 extension MyClass Yes As SE 0316 全球演员 https gi
  • “FOR UPDATE”v/s“LOCK IN SHARE MODE”:允许并发线程读取锁定行的更新“状态”值

    我有以下场景 用户 X 从位置 lc1 登录到应用程序 调用它Ulc1 用户 X 已被黑客攻击 或者他的某个朋友知道他的登录凭据 或者他只是从他计算机上的不同浏览器登录 等等 你明白了 从位置 lc2 同时登录 调用它Ulc2 我正在使用一
  • MySQL临时表是共享资源吗?

    我有一个使用临时表的 MySQL 存储过程 假设我的表名称是 temp 我用它来存储一些中间数据 它将在程序开始时创建 并在程序结束时删除 CREATE PROCEDURE p BEGIN CREATE TEMPORARY TABLE te
  • 并发可变优先级队列

    是否存在并发可变优先级队列 理想情况下 我正在寻找 C 实现 但是对于初学者来说 指向算法的指针会非常有帮助 需要明确的是 我正在寻找一个优先级队列 可以在其中调整元素的优先级 特别是TBBconcurrent priority queue
  • Dataflow 2.1.0 中是否有 IntrabundleParallelization 的替代方案?

    根据 dataflow 2 X 的发行说明 IntraBundleParallelization 已被删除 有没有办法控制 增加数据流 2 1 0 上 DoFns 的并行度 当我在 1 9 0 版本的数据流上使用 IntrabundlePa
  • IE9在IE7模式下有多少并发连接

    有谁知道 IE 9 在其他浏览器模式下允许多少个并发连接 既然我问的是 所有IE浏览器和其他顶级浏览器的并发连接数是多少 实际上在 Chrome 中存在问题 我认为这是一个并发问题 有人建议它也应该在 IE 中发生 但我没有安装 IE7 我
  • 如何为一系列任务设计执行引擎

    我正在尝试用 Java 编写一个问题 我必须执行一堆任务 Problem 执行由多个任务组成的作业 并且这些任务之间具有依赖关系 一个作业将有一个任务列表 每个这样的任务将进一步有一个后续任务列表 每个后续任务将有自己的后续任务 您可以在此
  • Thread.yield()之后线程的Thread.State是什么?

    是什么Thread State之后的一个线程Thread yield 是不是一个Thread State WAITING 谢谢 不 线程仍会在RUNNABLE http download oracle com docs cd E17409
  • Java - 线程“主”中的异常 java.util.ConcurrentModificationException

    有什么办法可以修改HashMap迭代特定键时的值 下面给出一个示例程序 public static void main String args HashMap
  • python 线程是如何工作的?

    我想知道 python 线程是并发运行还是并行运行 例如 如果我有两个任务并在两个线程中运行它们 它们是同时运行还是计划同时运行 我知道GIL并且线程仅使用一个 CPU 核心 这是一个复杂的问题 需要大量解释 我将坚持使用 CPython

随机推荐

  • 如何从模数、指数和私有指数创建 Crypt::RSA 对象?

    我正在尝试将以下 php 功能移植到 perl public function loadKey mod exp type public rsa new Crypt RSA rsa gt signatureMode CRYPT RSA SIG
  • 如何在webRTC android中将视频流数据录制为mp4?

    请帮我 我在中使用了这个例子https github com pcab AndroidRTC https github com pchab AndroidRTC将视频和音频从 Android 设备流式传输到其他 Android 设备 在这个
  • Scipy Weibull CDF 计算

    我正在 Scipy 中进行生存计算 但无法获得正确的值 My code x a c 1000 1 5 5000 vals exponweib cdf x a c loc 0 scale 1 vals应该等于 0 08555935639278
  • Boost python 导出单例

    我有一个单例 来自 boost serialization class LogManager public boost serialization singleton
  • 将日期时间设置为下一刻钟

    让我们想象一下这个datetime gt gt gt import datetime gt gt gt dt datetime datetime 2012 10 25 17 32 16 我想把时间限制在下一刻钟 以便 datetime da
  • 使用 JMeter 时陷入嵌套循环。嵌套循环控制器和 CSV 数据集配置。

    在我的网站上 我有两个商家操作 搜索和浏览 一次搜索通常会触发三次浏览 我有一个 JMeter 测试 它使用商家和商家 ID 号的 CSV 文件 在大规模运行此测试时 我希望使用我网站上的所有商家 我已经在 J Meter 中映射了它 如下
  • 使用选项模式的依赖注入

    我正在尝试从 appsettings 文件加载一些设置 但在使用选项模式时加载列表的方式遇到了一个小问题 假设我有以下类 用于加载设置 public class Application public string Name get set
  • NUnit 不会因 Finalizer 中的异常而失败

    在我们的框架中 有一些具有文件句柄或 WCF 客户端连接的关键对象 这些对象是IDiposable我们有验证代码 抛出异常 以确保它们在不再需要时得到正确处置 仅调试 这样我们就不想在发布时崩溃 这不一定是在关机时发生的 最重要的是 我们有
  • Jersey Rest 客户端未添加查询参数

    我正在尝试为 google 搜索 api 制作一个简单的球衣休息客户端 Client client ClientBuilder newClient WebTarget target client target https www googl
  • Realm 为我的 apk 添加了额外的大小

    在添加 Realm 库之前 我的 apk 的初始大小为 2 3 MB 添加相同的库后 apk 大小增加到 10 61 MB 是否可以减小大小 如果是 如何减小 如果没有 请推荐 Realm 的替代品 您可以使用 abi split 来减小
  • 是否可以取消 NKAssetDownload?

    我在 App Store 上有一个杂志阅读器 我目前正在实现 NewsstandKit 功能 我的应用程序具有此下载工作流程 用户可以随时取消当前下载 我希望用户能够购买应用内产品 并以报刊亭后台下载的方式开始下载 杂志包含多媒体 因此它们
  • Java 中是否有“/usr/bin/strip”的对应项?

    有没有任何工具可以从 Java class 文件中删除调试信息 就像 usr bin strip可以在 Linux 上从 C C 目标文件中获取吗 EDIT 我喜欢 Thilo 和 Peter 的回答 Peter 的回答很简短 而且暴露了我
  • 在不兼容的接收器上调用方法 Set.prototype.add 未定义

    我根本不明白为什么它会给出这个错误 这是我在 chrome 控制台上测试的结果 gt var mySet lt undefined gt mySet new Set lt Set gt mySet add foo bar baz Worke
  • 使用 Jbuilder(或其他)的 Rails JSON API 布局

    在我的 Rails 3 2 应用程序中 我使用jbuilder https github com rails jbuilder呈现来自我的 JSON api 的响应 我想为所有 API 响应提供一个通用的结构 而布局可能是保持视图干燥的解决
  • 检查 DST 是否生效

    In PHP date I 会告诉我夏令时是否有效 这是否告诉我 DST 是否专门针对我的服务器配置的时区有效 或者是否在有效期间 我在亚利桑那州 那里不遵守夏令时 因此 我需要我的服务器认识到纽约现在比我早 2 小时 但是当明年 3 月夏
  • Windows 7 上的 emacs 24,tramp 找不到 plink 程序

    我正在尝试在 Windows 7 上使用 Emacs 24 2 和 Tramp 来远程编辑 Linux 服务器上的文件 我安装了Putty套装程序和OpenSSH 我还将putty套装中的plink exe放入emacs 24文件夹下的bi
  • 在数据库中插入值

    嘿 我正在使用 IBM Worklight V6 2 我想将值插入数据库 我的 HTML 代码是 h1 Please Enter The Car Details h1
  • 在 Chrome DevTools 中实时更改 Vue.js 应用程序(Webpack 模板)的页面样式时,它被破坏了

    重现步骤 我有从引导的应用程序vue cli with a webpack模板 我在 Chrome 上运行它65 0 3325 146但它也存在于64 X XXX版本 我在这里添加 package json https gist githu
  • webpack根据chunk加载不同的模块

    是否可以让 webpack 根据某些上下文信息加载另一个模块 例如 我的 React 应用程序有两个版本 桌面版和移动版 在我的 index js 中 我决定加载哪个应用程序 if isMobile loadMobile then defa
  • 数据流并发的一个很好的激励示例是什么?

    我了解数据流编程的基础知识 并且在Clojure API http richhickey github com clojure contrib dataflow api html 乔纳斯 博纳的演讲 http www slideshare