多线程 – 在x86上如果[mem]不是32位对齐,可以“锁定inc [mem]”仍然可以正常工作吗?

前端之家收集整理的这篇文章主要介绍了多线程 – 在x86上如果[mem]不是32位对齐,可以“锁定inc [mem]”仍然可以正常工作吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在x86上,如果mem是32位对齐的,则mov操作保证是原子的.

如果[mem]不是32位对齐,可以锁定inc [mem] sill工作正常吗?

工作正常:提供原子性而不是获得部分价值.

解决方法

x86和x64的 Intel Instruction Set Reference没有提到INC指令的对齐要求.所有关于LOCK的说法都是:

This instruction can be used with a LOCK prefix
to allow the instruction to be executed atomically.

LOCK前缀文档说明:

The integrity of the LOCK prefix is not affected by the alignment of the memory field. Memory locking is observed for arbitrarily misaligned fields.

原文链接:https://www.f2er.com/java/121621.html

猜你在找的Java相关文章