作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如果我有一个 Java 进程通过共享的 ByteBuffer 或类似的东西与其他一些进程交互,那么 C/C++ 中编译器屏障的侵入性最小的等价物是什么?不需要可移植性 - 我对 x86 特别感兴趣。
例如,根据伪代码,我有 2 个进程读取和写入内存区域:
p1:
i = 0
while true:
A = 0
//Write to B
A = ++i
p2:
a1 = A
//Read from B
a2 = A
if a1 == a2 and a1 != 0:
//Read was valid
最佳答案
您可以使用 lazySet,它可以比设置 volatile 字段快 10 倍,因为它不会停止 CPU 管道。例如AtomicLong lazySet 或者您可以根据需要使用 Unsafe 等效项。
关于java - x86 上 Java 的侵入性最小的编译障碍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14660529/
这是 Google 无法回答的问题。我正在为一款多人游戏使用 XMLHttpRequest 进行一些 HTTP“长轮询”。在 Chrome 中,这会导致选项卡始终处于“加载中”状态:(1) 标签中的图
我是一名优秀的程序员,十分优秀!