加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java和C 11易失

发布时间:2020-12-15 08:47:05 所属栏目:Java 来源:网络整理
导读:我想将一些代码从 Java移植到C 11,我对volatile关键字感到困惑. 我不熟悉Java语言,我不知道它是什么变量.它保证每个线程都可以访问变量的最新值 – 它是C volatile行为.但它通常用于同步 – 是对volatile变量原子执行的所有操作吗? 所以我认为C 11对Java vo
我想将一些代码从 Java移植到C 11,我对volatile关键字感到困惑.

我不熟悉Java语言,我不知道它是什么变量.它保证每个线程都可以访问变量的最新值 – 它是C volatile行为.但它通常用于同步 – 是对volatile变量原子执行的所有操作吗?

所以我认为C 11对Java volatile的良好替代将是std :: atomic.或者我完全错了,因为我错过了一些额外的Java volatile功能?

解决方法

是的,他们将是一个很好的匹配,在 Dr Dobbs有一篇很好的文章.

In a nutshell,ordered atomic variables are safe to read and write on
multiple threads at the same time without doing any explicit locking
because they provide two guarantees: their reads and writes are
guaranteed to be executed in the order they appear in your program’s
source code; and each read or write is guaranteed to be atomic,
all-or-nothing.

Java将此类变量提供为volatile,C为std :: atomic.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读