我听说有3种并发。
- 确定性并发
- 消息传递并发
- 共享状态并发
我知道#2(=演员模型)和#3(=通用线程),但不知道#1。那是什么?
确定性并发是一种并发编程模型,在此模型中编写的程序具有以下属性:对于给定的一组输入,程序的输出值对于任何执行计划都是相同的。这意味着程序的输出仅取决于程序的输入。
有一些方法可以确保此属性。其中一种方法是所谓的单赋值编程,其中变量不必初始化,但最多可以赋值一次。读取未初始化的变量会停止,直到它被赋值(可能由其他线程)。 Mozart 编程语言支持这些。
另一种方法是使用所有权分析来确定哪些线程“拥有”不同的引用,并确保没有 2 个线程同时写入该引用,因此不会出现数据争用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)