Java中原子操作是线程安全的论调经常被提到。根据定义,原子操作是不会被打断的操作,因此被认为是线程安全的。实际上有一些原子操作不一定是线程安全的。
!-- frame contents -- !-- /frame contents -- 这个问题出现的原因是尽量减少在代码中同步要害字。同步会损害性能,虽然这个损失因JVM不同而不同。另外,在现代的JVM中,同步的性能正在逐步提高。尽管如此,使用同步仍然是有性能代价的,并且程序员永远会尽力提高他们的代码的效率,因此这个问题就延续了下来。
在java中,32位或者更少位数的赋值是原子的。在一个32位的硬件平台上,除了double和long型的其它原始类型通常都是使用32位进行表示,而double和long通常使用64位表示。另外,对象...[ 查看全文 ]