我已经阅读了很多关于C#的x86-x64,ARM,ECMA内存模型之间的差异。什么是现实世界的最佳实践:根据更强大的x86-x64型号或更弱的ECMA进行开发?我是否应该考虑可能的重新排序,陈旧值,应用程序的安全发布仅在x86-x64硬件上运行?
答案 0 :(得分:4)
我已经阅读了很多关于C#的x86-x64,ARM,ECMA内存模型之间的差异。什么是现实世界的最佳实践:根据更强大的x86-x64型号或更弱的ECMA进行开发?我是否应该考虑可能的重新排序,陈旧值,应用程序的安全发布仅在x86-x64硬件上运行?
最佳做法是编写代码,使其正确。
我选择通过编写正确的代码而不编写多线程共享内存代码。这也是我鼓励你做的事情。
如果你必须编写多线程共享内存代码,那么我建议你使用高级库,比如任务并行库,而不是试图理解内存模型的复杂性。
如果你想编写仅在强大的内存模型上正确的低级共享内存多线程代码,那么,我无法阻止你,但这似乎需要付出大量的工作才能创建一个当您尝试在ARM上运行它时,程序会有微妙的错误。