C# 如果我不关心精度,我应该使用原子变量float而不是double吗?在64位cpu和64位应用程序上是double-atomic吗
我现在使用双变量作为计数器 然而,我的应用程序是多线程的,所以如果操作是原子的,那对我来说就更好了 我可以使用,但数字可以通过整数限制,我不需要精度后。因为它们将被用作计数器 Q:精确地说,它总是在后面提到吗?我是说小于1的操作 Q:那么我的问题是,我想使用double而不是float的原因是什么 我的cpu是最新的gen core i 7 2600k 64位,应用程序也是64位 我们可以说双64位应用程序是线程安全的吗C# 如果我不关心精度,我应该使用原子变量float而不是double吗?在64位cpu和64位应用程序上是double-atomic吗,c#,wpf,multithreading,floating-point,atomicity,C#,Wpf,Multithreading,Floating Point,Atomicity,我现在使用双变量作为计数器 然而,我的应用程序是多线程的,所以如果操作是原子的,那对我来说就更好了 我可以使用,但数字可以通过整数限制,我不需要精度后。因为它们将被用作计数器 Q:精确地说,它总是在后面提到吗?我是说小于1的操作 Q:那么我的问题是,我想使用double而不是float的原因是什么 我的cpu是最新的gen core i 7 2600k 64位,应用程序也是64位 我们可以说双64位应用程序是线程安全的吗 .NET4.5c#wpf应用程序您的帖子似乎涉及两件事:(A)浮点的数字特
.NET4.5c#wpf应用程序您的帖子似乎涉及两件事:(A)浮点的数字特征,以及(B)线程安全。这些都是非常不相关的话题,我建议将它们分为两个专门的SO问题。我们可以说双64位应用程序是原子的,而不是线程安全的。这还取决于你的意思,如果你不关心次整数值,为什么要使用浮点或双精度?为什么不是int或long?请注意,如果您尝试将1添加到一个大的浮点或双精度浮点,您将得到相同的值。。。换句话说,对于较大的值,两个“最近”值之间的差值大于1。@MonsterMMORPG:查看
Interlocked
类。。。请注意,++
从来都不是线程安全的,即使对于原子类型也是如此-因为它是读/修改/写的,其他线程可以在这两者之间进行转换。@MonsterMMORPG:您可以使用联锁的。读
。