什么是*确定性并发*?

2024-02-13

我听说有3种并发。

  1. 确定性并发
  2. 消息传递并发
  3. 共享状态并发

我知道#2(=演员模型)和#3(=通用线程),但不知道#1。那是什么?


确定性并发是一种并发编程模型,在此模型中编写的程序具有以下属性:对于给定的一组输入,程序的输出值对于任何执行计划都是相同的。这意味着程序的输出仅取决于程序的输入。

有一些方法可以确保此属性。其中一种方法是所谓的单赋值编程,其中变量不必初始化,但最多可以赋值一次。读取未初始化的变量会停止,直到它被赋值(可能由其他线程)。 Mozart 编程语言支持这些。

另一种方法是使用所有权分析来确定哪些线程“拥有”不同的引用,并确保没有 2 个线程同时写入该引用,因此不会出现数据争用。

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

什么是*确定性并发*? 的相关文章

  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • Volatile.Read 和 Volatile.Write 背后的逻辑是什么?

    来自 MSDN Volatile Read 读取字段的值 在需要它的系统上 插入一个 阻止处理器重新排序内存的内存屏障 操作如下 如果在该方法之后出现读或写 代码 处理器无法移动它before这个方法 and Volatile Write
  • 这应该被称为对象切片的某种特殊情况吗?

    假设我有课Derived派生自类Base然而sizeof Derived gt sizeof Base 现在 如果分配一个数组Derived像这样 Base myArray new Derived 42 然后尝试访问n第一个对象使用 doS
  • Scala 中的超时未来

    假设我有一个函数 它调用一个阻塞可中断的手术 我想在超时的情况下异步运行它 也就是说 我想在超时到期时中断该功能 所以我正在尝试做这样的事情 import scala util Try import scala concurrent Fut
  • Python 多处理:全局对象未正确复制到子级

    前几天我回答了一个关于SO的问题 https stackoverflow com q 67047533 1925388关于并行读取 tar 文件 这是问题的要点 import bz2 import tarfile from multipro
  • OOP 中的对象和结构有什么区别?

    对象与结构体有何区别 我们何时以及为何使用对象而不是结构体 数组与两者有何不同 何时以及为何使用数组而不是对象或结构 我想了解每个的用途 显然 您可以根据您的编程风格模糊这些区别 但通常结构是结构化的数据块 对象是可以执行某种任务的主权实体
  • Java HashSet 是线程安全的只读吗?

    如果我通过 Collections unmodifyingSet 运行 HashSet 实例后 它是线程安全的吗 我问这个是因为 Set 文档声明它不是 但我只是执行读取操作 来自 Javadoc 请注意 此实现不是同步的 如果多个线程同时
  • 初始化 ConcurrentHashMap 值的最快方法

    ConcurrentHashMap 通常在并发环境中用于聚合某个键下的某些事件 例如计算某些字符串值的命中数 如果我们事先不知道密钥 我们需要有一个好的方法来根据需要初始化密钥 它应该在并发性方面快速且安全 这个问题的最佳模式 就效率而言
  • Java 空值检查

    我有一个thread1 if object null object play 和另一个thread2可以写null into object随时参考 我将同时运行这些线程 我知道thread2可以重写object后参考null检查并会抛出Nu
  • .NET 或 Windows 同步原语性能规范

    我目前正在写一篇科学文章 我需要非常准确地引用 有人可以向我指出 MSDN MSDN 文章 一些已发表的文章来源或一本书 我可以在其中找到 Windows 或 NET 同步原语的性能比较 我知道这些是按性能降序排列的 互锁 API 关键部分
  • Scala 中用于阻止调用的 Future

    The Akka文档说 you may be tempted to just wrap the blocking call inside a Future and work with that instead but this strate
  • CSS 属性名称中的“font-”与“text-”

    CSS 属性名称中使用的术语 文本 和 字体 有什么区别 它们的含义是否相同 或者以以下开头的 CSS 属性名称之间是否存在语义差异font 和一个开头text 例如 为什么我们有这些 CSS 属性 font size 34px text
  • Ruby MRI 1.8.7 - 文件写入线程安全

    在我看来 在 Ruby MRI 1 8 7 中写入文件是完全线程安全的 示例 1 完美的结果 File open test txt a f threads 1 000 000 times do n threads lt lt Thread
  • Android 中 Bitmap 和 Drawable 有什么区别?

    我用谷歌搜索 但找不到任何文章来描述 Android 中 Bitmap 和 Drawable 之间的区别 位图是位图图像的表示 类似于 java awt Image Drawable 是 可以绘制的东西 的抽象 它可能是一个位图 包装为Bi
  • 从多个进程附加到单个文件的“线程安全”?

    假设我有 X 个进程打开文件 Y 进行追加 每个进程一次只写入一行 带有 n 真正的日志条目 文件 Y 中的每一行是否保证不会错误地交错 更新 本地附加文件系统 问题取决于正在进行什么类型的写入 如果您使用带缓冲的标准 I O 这通常是大多
  • Java ReentrantReadWriteLocks - 如何在读锁中安全地获取写锁?

    我现在在我的代码中使用可重入读写锁 http java sun com javase 6 docs api java util concurrent locks ReentrantReadWriteLock html同步对树状结构的访问 这
  • 我应该在请求中创建 executorService 还是在 Web 应用程序中共享一个实例?

    我正在向基于 Jersey 的 Web 服务添加一个新端点 支持端点的逻辑需要对另一个服务进行 10 到 50 次调用 这些调用是独立的并且可以并行化 因此我正在考虑使用执行器服务将工作分配到多个线程 我想知道是否应该为每个请求实例化一个
  • 抽象类、接口、mixins

    有人可以向我解释一下两者之间的区别吗抽象类 接口 and mixins 我之前在代码中使用过它们 但我不知道技术差异 抽象类 抽象类是不被设计为实例化的类 抽象类可以没有实现 部分实现或全部实现 抽象类旨在允许其子类共享公共 默认 实现 抽
  • 在函数中将通道作为参数传递的不同方法

    我正在阅读一些Go代码 并说了几种传递Go通道的不同方法 也许它们是相同的 但我想知道是否有任何区别 因为我无法在线找到文档 1 func serve ch lt chan interface do stuff 2 func serve c
  • 数据库锁定在 WAL 模式下,只有读取器

    在中使用System Data Sqlite 1 0 86 0 包括SQLite 3 7 17 预写式记录 http www sqlite org wal html模式下 我在并发读取时遇到数据库锁 如果我正确理解 WAL 则不应该出现这种

随机推荐

  • 如果您在标量上下文中计算哈希值,您会得到什么?

    考虑以下片段 use strict use warnings my a a gt 1 b gt 2 c gt cucu d gt undef r gt 1 br gt 2 cr gt cucu dr gt 321312321 my c a
  • 在 VS code 中按 F5 无法打开新窗口来调试我的自定义主题

    I have created a new custom theme using the Yoeman theme generated and now when I pressed on F5 to open a new Host Exten
  • 如何在 Mac 上使用 PHP 获取文件的实际创建时间?

    当您在 Finder 中选择一个文件并在 Mac 上按 cmd i 时 您将获得该文件 实际 创建的时间以及上次修改的时间 我的问题很简单 如何使用 PHP 从现有的 Mac 文件中获取实际的创建时间 现在 在研究了这个话题之后 我读到了一
  • 自定义 Facebook 点赞框

    我想定制我的 Facebook 点赞框的设计 我已经在网上搜索并按照所有说明进行操作 这是我尝试过的链接 但它似乎已过时 http www daddydesign com wordpress how to customize your fa
  • hadoop writables NotSerializedException 与 Apache Spark API

    Spark Java 应用程序在 hadoop 可写对象上抛出 NotSerializedException public final class myAPP public static void main String args thro
  • 快速:单击按钮时继续

    我想使用 segue 在按钮单击时移动到下一个控制器 我需要获取下一个控制器中的按钮数量 这是我的控制器的代码 import UIKit class ViewController2 UIViewController UITableViewD
  • Android 模拟器 - 加载设备“goldfish_pipe”的实例 0x0 的状态时出错

    我两天前更新了一些 android studio 组件 一切都搞砸了 现在我无法使用 android 模拟器 因为它在午餐后立即退出 我已经尝试过以下操作 删除我所有的虚拟设备并创建新的 没用 擦除模拟器数据 没用 尝试在 AVD 中手动启
  • 从字符列表生成所有组合

    我正忙于为笔测试人员建立一个实验室 以根据 4 个字母的单词创建 MD5 哈希值 我需要这些单词包含小写和大写字母以及数字和特殊字符的组合 但我似乎不知道如何以所有顺序组合任何给定的字符 所以目前我有这个 my str aaaa print
  • jquery DataTables 中的动态排序

    我正在使用 DataTablescolumns render https datatables net reference option columns render为表实现自定义排序的选项 当排序函数中的逻辑仅依赖于静态数据时 这种方法效
  • 如何在WPF中根据bool属性设置背景颜色

    我想设置 GridViewColumn 的背景颜色 该 GridViewColumn 在 WPF 中的列表视图内部进行数据绑定 我不知道如何问这个问题 因为我对 WPF 相当陌生 否则我不会打扰你们所有人 我想根据数据绑定对象中的布尔标志更
  • com.microsoft.sqlserver.jdbc.SQLServerException:结果集没有当前行

    我试图获取结果集第一行中的第一列 我知道我可以更改 SQL 查询来做到这一点 但不是 我想要完整的桌子 我只想做我刚才提到的事情 注意 Winners 是我的 sql 查询中的别名列 错误基本上是 com microsoft sqlserv
  • React 事件传播并没有真正停止

    var Vote React createClass onVote event console log event triggered event stopPropagation event nativeEvent stopImmediat
  • 恢复未发布的 Node.js 包的版本

    我有一个在 NPM 上发布的包 它当前的版本是1 0 1 我在本地做了一些更改 并想发布它们 我进入了npm version 1 0 3然后觉得很愚蠢 因为我想打字npm version 1 0 2 我怎样才能恢复这个错误 一位同事刚刚建议
  • __setattr__ 如何处理类属性?

    我想确切地了解如何 setattr 与类属性一起使用 当我试图覆盖时出现这个问题 setattr 以防止属性被写入简单的类中 我的第一次尝试使用实例级属性 如下所示 class SampleClass object def init sel
  • 如何为 mvc 应用程序中的所有控制器启用 ssl

    我有一个 MVC 5 应用程序 并且安装了 ssl 证书 现在正在使用 https 连接 但在我的代码中 我必须在 homecontroller 上设置 requirehttps 属性 如下所示 RequireHttps public cl
  • 使用命令行选项在 mplayer 中播放视频的特定间隔

    我正在使用 mplayer 播放视频 我想知道是否有命令行选项可以在 mplayer 中播放视频的特定间隔 例如 如果我想播放一个 56 秒的视频文件 持续时间为 3 秒 那么命令行选项是什么 我知道 ss 选项会寻找特定位置 但如何指定我
  • 当脚本作为 cronjob 运行时,python 脚本在导入语句处停止

    我使用 cron 每 30 分钟执行一个 python 脚本 但它在 import 语句处停止 我不明白为什么 因为我没有得到任何反馈 在我的 crontab 中我有 30 sh exec script sh 文件exec script s
  • 我们如何从Google Direction API默认获得从A点到B点的最短距离路线

    我们如何从 Google Direction API 建议的替代路线中默认获得从 A 点到 B 点的最短距离路线 默认情况下 它会根据当前的交通状况为我们提供最短持续时间的路线 我注意到 如果您打开 provideRouteAlternat
  • 使用和不使用 Set 关键字之间的类型差异

    我刚刚解决了一个问题 我将 Set 关键字放在定义行中 但我想知道的是 为什么 基本上 我正在这样做 Dim startCell iCell as Range For Each iCell in Range whatever If iCel
  • 什么是*确定性并发*?

    我听说有3种并发 确定性并发 消息传递并发 共享状态并发 我知道 2 演员模型 和 3 通用线程 但不知道 1 那是什么 确定性并发是一种并发编程模型 在此模型中编写的程序具有以下属性 对于给定的一组输入 程序的输出值对于任何执行计划都是相