什么是*确定性并发*?

Eon*_*nil 8 concurrency terminology

我听说有3种并发.

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

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

axe*_*l22 8

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

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

另一种方法是使用所有权分析来确定哪些线程'拥有'不同的引用,并确保没有2个线程在同一'时间'写入引用​​,因此没有数据争用.