随着对C和C++的“最近”更改添加了内存模型(类似于Java和C#),我想知道Ada83或Ada95对并发的内置支持是否也定义了内存模型。
有没有人知道Ada是否定义了一个内存模型?
额外的问题: Ada83是第一个为共享状态并发性提供内置支持的通用编程语言吗?
发布于 2013-07-04 06:15:32
我认为在你所问的意义上最接近记忆模型的是手臂的Dynamic Semantics部分。
Ada 83例有pragma Shared。
Ada 95 replaced this具有编译指示原子、易失性、Atomic_Components和Volatile_Components;Ada 2005与(在更正中)编译指示独立和Independent_Components相同(即,被引用的对象或其每个组件都是可独立寻址的)。
Ada2012用aspects替换了编译指示,原因很好,但不是直接相关的原因:
Imported_Variable : Integer with
Import, Convention => C, External_Name => "exported_variable", Volatile;发布于 2013-07-04 15:37:54
关于任务和共享内存,我认为你应该看看Protected Types。对于并发,这允许不同的线程(任务)共享一个资源,而不需要显式的互斥。
https://stackoverflow.com/questions/17457681
复制相似问题