C17标准7.17.2.2节对<stdatomic.h>中定义的void atomic_init(volatile A *obj, C value)作了如下说明
虽然这个函数初始化一个原子对象,但它并不能避免数据竞争;并发访问被初始化的变量,即使是通过原子操作,也构成了一个数据竞争。既然拥有原子对象和原子操作的全部目的是避免数据竞争,那么为什么存在atomic_init函数呢?例如,为什么不做下面的工作呢?
去年,一个问题的解决方案是让我的实例变量原子化,以确保其他任务也能看到它们的变化。(While loop in a method gets stuck.Adding an assignment of a field to itself fixes the issue) 今年我要用初始化器替换我的构造函数。docs/master/language/evolution.html#readme-evolution-initializers-replace-constructors)不幸的是,我不知道如何初始化
另外,我想重点关注重叠注释的可视化。文本的一部分(用户选择),是注释的,我称之为原子。对我来说,有四种类型的原子可以重叠,描述如下:
我的方法是用边界原子。因此,每个原子被包装在一个span标记中。我对(3)有一些问题。重叠。当然,我将其分解为4个span:start、end和两个用于重叠部分。span class="B s