【发布时间】:2009-10-23 09:35:31
【问题描述】:
我正在实现一些速度关键的多线程代码。如果我确定一些基本的写操作是原子的,我可以避免出现一些关键部分。我刚刚阅读了一篇学术论文,其中我看到了以下内容:
"基本类型大小t、int、float和pointer的写入必须是原子的。一个线程的写入必须以相同的顺序被其他线程看到。IA-32和Intel-64 CPU架构,使用的在大多数现代标准计算机中,保证这些假设。”
我想做的是能够在运行时检测处理器是否属于这些操作是原子的类型。 - 我希望这也适用于 AMD 处理器。
【问题讨论】:
-
AMD 处理器支持 IA32 CPU 架构,他们定义了 AMD64 架构,Intel64 就是从这些架构中派生出来的。
-
有趣。想知道那是什么论文,以及在存在编译器优化的情况下您希望如何保证。如果你在谈论组装很好,我相信这一点。否则我觉得很难下咽。
-
这是论文:www.cs.ualberta.ca/~mmueller/ps/enzenberger-mueller-acg12.pdf 我不知道你的意思是“你想如何保证在场编译器优化”..谁说我想要?
标签: c++ multithreading visual-c++ visual-c++-2008