对于64位Windows上的32位应用程序,是64位操作是原子操作

伊恩

因此,该文档说,运行64位Windows可以为您提供64位原子性:http : //msdn.microsoft.com/zh-cn/library/windows/desktop/ms684122%28v=vs.85%29.aspx

这篇文章表明您必须运行64位应用程序才能获得64位原子性:32/64位的原子

我正在开发Win32控制台应用程序。因此,如果我理解正确,我必须使用32位类型来获得原子性,对吗?我不能假设64位类型具有原子写入/读取?

里奇·特纳

在64位应用程序中,因为编译器可以利用具有原子64位读/写操作的x64扩展指令集,所以64位读/写操作可以是自动的。

另一方面,在64位操作系统和硬件上的32位代码中,如果应用需要读取/写入64位数据,则​​没有可用的64位读取/写入指令,因此编译器必须生成(至少)两次读/写操作。因为操作系统可以抢先两次读/写之间的过程,所以您应该使用InterlockedxxxAPI。

注意:如果需要,可以构建64位Win32控制台应用程序在这种情况下,编译器可以生成使用64位读/写操作的代码。

当然,由于您的代码可能要读取/写入大于64位的数据类型(例如SSE2 / 3,AVX等),因此需要多个读取/写入操作,因此应使用适当的内在函数来确保所需的操作是原子的。

建议您不要使用编译器为特定情况做正确的事情,而是建议使用必要的API和内在函数来明确声明哪些操作必须是原子操作这样,您就不必关心代码是否针对x64,x64,ARM,MIPS等进行编译。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在64位操作系统中使用32位应用程序内存。

来自分类Dev

64位OS(Windows)上的32位应用程序内存限制

来自分类Dev

Linux上的32位,64位CPU操作模式

来自分类Dev

Ubuntu在32位操作系统上安装64位

来自分类Dev

Ubuntu在32位操作系统上安装64位

来自分类Dev

在64位操作系统中构建32位Qt 5.2.1应用程序的问题(带有gcc 4.8.2的centos)

来自分类Dev

在64位应用程序中使用32位库

来自分类Dev

从32位应用程序挂接64位进程

来自分类Dev

通常,您可以在64位操作系统上使用32位驱动程序吗?

来自分类Dev

在64位操作系统上使用32位驱动程序

来自分类Dev

要使32位应用程序在64位Windows 7上使用2GB以上的内存?

来自分类Dev

如何在64位Ubuntu上编译32位应用程序?

来自分类Dev

如何在64位RHEL上编译32位应用程序?

来自分类Dev

在64位Linux机器上运行32位应用程序

来自分类Dev

如何在64位OSX 10.7.2上运行32位应用程序?

来自分类Dev

在32位Ubuntu系统上运行64位应用程序

来自分类Dev

64位内核上的32位应用程序可以使用所有内存吗?

来自分类Dev

32位应用程序可以在64位iPhone 5S上运行吗?

来自分类Dev

如何在32位架构上运行64位应用程序

来自分类Dev

尝试在64位Ubuntu 16.04 LTS上运行32位应用程序

来自分类Dev

如何在32位和64位系统上运行exe Java应用程序?

来自分类Dev

无法在64位Windows计算机中启动32位RCP应用程序

来自分类Dev

我是否需要为 64 位机器上的 32 位应用程序部署 32 位或 64 位 VC++ 运行时?

来自分类Dev

64位软件/应用程序比32位软件/应用程序需要更多的RAM吗?

来自分类Dev

我可以在Windows 7 32位操作系统上运行的VirtualBox上安装Windows 7 64位吗?

来自分类Dev

无法在32位操作系统上运行在NetBeans(在64位Windows 10上)中创建的.exe

来自分类Dev

对于64位Windows操作系统和32位Ubuntu Linux操作系统,Tesseract解码结果有所不同

来自分类Dev

您可以在运行32位操作系统的64位CPU上使用多少内存?

来自分类Dev

将旧的32位操作系统安装在新的64位系统上。表现?

Related 相关文章

  1. 1

    在64位操作系统中使用32位应用程序内存。

  2. 2

    64位OS(Windows)上的32位应用程序内存限制

  3. 3

    Linux上的32位,64位CPU操作模式

  4. 4

    Ubuntu在32位操作系统上安装64位

  5. 5

    Ubuntu在32位操作系统上安装64位

  6. 6

    在64位操作系统中构建32位Qt 5.2.1应用程序的问题(带有gcc 4.8.2的centos)

  7. 7

    在64位应用程序中使用32位库

  8. 8

    从32位应用程序挂接64位进程

  9. 9

    通常,您可以在64位操作系统上使用32位驱动程序吗?

  10. 10

    在64位操作系统上使用32位驱动程序

  11. 11

    要使32位应用程序在64位Windows 7上使用2GB以上的内存?

  12. 12

    如何在64位Ubuntu上编译32位应用程序?

  13. 13

    如何在64位RHEL上编译32位应用程序?

  14. 14

    在64位Linux机器上运行32位应用程序

  15. 15

    如何在64位OSX 10.7.2上运行32位应用程序?

  16. 16

    在32位Ubuntu系统上运行64位应用程序

  17. 17

    64位内核上的32位应用程序可以使用所有内存吗?

  18. 18

    32位应用程序可以在64位iPhone 5S上运行吗?

  19. 19

    如何在32位架构上运行64位应用程序

  20. 20

    尝试在64位Ubuntu 16.04 LTS上运行32位应用程序

  21. 21

    如何在32位和64位系统上运行exe Java应用程序?

  22. 22

    无法在64位Windows计算机中启动32位RCP应用程序

  23. 23

    我是否需要为 64 位机器上的 32 位应用程序部署 32 位或 64 位 VC++ 运行时?

  24. 24

    64位软件/应用程序比32位软件/应用程序需要更多的RAM吗?

  25. 25

    我可以在Windows 7 32位操作系统上运行的VirtualBox上安装Windows 7 64位吗?

  26. 26

    无法在32位操作系统上运行在NetBeans(在64位Windows 10上)中创建的.exe

  27. 27

    对于64位Windows操作系统和32位Ubuntu Linux操作系统,Tesseract解码结果有所不同

  28. 28

    您可以在运行32位操作系统的64位CPU上使用多少内存?

  29. 29

    将旧的32位操作系统安装在新的64位系统上。表现?

热门标签

归档