什么是*确定性并发*?

2024-02-13

我听说有3种并发。

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

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


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

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

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

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

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

  • 如何阻塞直到BlockingQueue为空?

    我正在寻找一种方法来阻止直到BlockingQueue是空的 我知道 在多线程环境下 只要有生产者将物品放入BlockingQueue 可能会出现队列变空 几纳秒后又充满项目的情况 但是 如果只有one生产者 那么它可能希望在停止将项目放入
  • 数据流并发的一个很好的激励示例是什么?

    我了解数据流编程的基础知识 并且在Clojure API http richhickey github com clojure contrib dataflow api html 乔纳斯 博纳的演讲 http www slideshare
  • 官方 OpenCL 2.2 标准是否支持 WaveFront?

    众所周知 AMD OpenCL 支持 WaveFront 2015 年 8 月 http amd dev wpengine netdna cdn com wordpress media 2013 12 AMD OpenCL Programm
  • C++ 条件变量通知未按预期工作

    我正在尝试在之前的工作完成后立即启动新线程worker thread has started 但也许结束了 也可能没有结束 我已经用时间延迟替换了开始和结束的工作 我的代码是 include
  • 线程/进程/任务之间有什么区别?

    线程 进程 任务之间有什么区别 Process 进程是正在执行的计算机程序的实例 它包含程序代码及其当前活动 根据操作系统 OS 进程可能由同时执行指令的多个执行线程组成 基于进程的多任务处理使您能够在使用文本编辑器的同时运行 Java 编
  • Java - 线程“主”中的异常 java.util.ConcurrentModificationException

    有什么办法可以修改HashMap迭代特定键时的值 下面给出一个示例程序 public static void main String args HashMap
  • 使用 Nginx 或 Apache 来提供动态内容? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无锁算法中的 ABA

    我明白了ABA http en wikipedia org wiki ABA problem问题 但我无法理解的是 他们说在语言中自动垃圾收集它可能不会展示 所以我的问题是 自动垃圾收集如何防止ABA问题的发生 在java中是否可能 如果可
  • 编写潜在并发问题的证明

    我正在阅读 Java 并发实践 并尝试编写一段代码来表明第 3 5 1 章中作为示例提供的类确实会引入问题 public class Holder public int n public Holder int n this n n publ
  • 为什么在 10 个 Java 线程中递增一个数字不会得到 10 的值?

    我不明白 a 的值为0 为什么 a 不是10 那段代码的运行过程是怎样的 是否需要从Java内存模型来分析 这是我的测试代码 package com study concurrent demo import lombok extern sl
  • 单线程程序中可以有竞争条件吗?

    您可以在here https en wikipedia org wiki Race condition Software关于什么是竞争条件的一个很好的解释 我最近看到很多人对竞争条件和线程做出了令人困惑的陈述 我了解到竞争条件只能发生在线程
  • Java 8:并行 FOR 循环

    我听说 Java 8 提供了很多关于并发计算的实用程序 因此我想知道并行给定 for 循环的最简单方法是什么 public static void main String args Set
  • 什么是 API 密钥? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如今 我几乎在每个跨服务应用程序中都看到这个词 API 密钥到底是什么以及它的用途是什么 另外 公共 API 密钥和私有 API 密钥
  • 打印到 stdout 会导致阻塞的 goroutine 运行吗?

    作为一个愚蠢的基本线程练习 我一直在尝试实现理发师睡觉的问题 http en wikipedia org wiki Sleeping barber problem在戈兰 对于通道来说 这应该很容易 但我遇到了一个 heisenbug 也就是
  • 使用连接池后如何处理过多的并发连接?

    Scenario 假设您有一个拥有大量流量的网站或应用程序 即使使用数据库连接池 性能也会受到真正的打击 站点 应用程序甚至可能崩溃 因为并发连接太多 Question 人们有什么选择来处理这个问题 我的想法 我在想有这个问题的人可以创建多
  • 在 Java EE 中手动启动新线程安全吗?

    对于在会话范围内的 JSF 托管 bean 中生成线程是否安全 我找不到明确的答案 线程需要调用无状态 EJB 实例 依赖注入到托管 bean 上的方法 背景是我们有一份需要很长时间才能生成的报告 由于我们无法更改服务器设置 这导致 HTT
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • 是否有一种更简单的方法可以并行运行命令,同时在 Windows PowerShell 中保持高效?

    此自我回答旨在为那些受困于 Windows PowerShell 并由于公司政策等原因而无法安装模块的用户提供一种简单且高效的并行替代方案 在 Windows PowerShell 中 built in可用的替代方案local并行调用是St
  • Volatile.Read 和 Volatile.Write 背后的逻辑是什么?

    来自 MSDN Volatile Read 读取字段的值 在需要它的系统上 插入一个 阻止处理器重新排序内存的内存屏障 操作如下 如果在该方法之后出现读或写 代码 处理器无法移动它before这个方法 and Volatile Write
  • D 并发写入缓冲区

    假设您有一个大小为 N 的缓冲区 必须将其设置为确定的值 例如零或其他值 缓冲区中的此值设置分为 M 个线程 每个线程处理缓冲区的 N M 个元素 缓冲区不能immutable 因为我们改变了值 消息传递也不起作用 因为禁止传递 ref 或

随机推荐

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

    考虑以下片段 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 那是什么 确定性并发是一种并发编程模型 在此模型中编写的程序具有以下属性 对于给定的一组输入 程序的输出值对于任何执行计划都是相