demibug

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  24 Posts :: 3 Stories :: 2 Comments :: 0 Trackbacks
Atomic action cannot stop in the middle: it either happens completely, or it doesn't happen at all. No side effects of an atomic action are visiable until the action is complete.

Java primitive types include: byte; short; int; long; float; double; boolean; char;

读和写变量的引用以及primitive types的变量的操作是原子的(除了long和double);
读和写任何用volatile关键字修饰的变量的操作是原子的(包括long和double);

Primitive 类型并不能完全消除同步错误,原子操作有时仍需同步,使用volatile修饰能避免这些错误。(用volatile修饰的primitive types)

那么什么时候会发生这种错误呢,即在不同线程对primitive类型变量进行赋值时,这种错误是可能发生的。(只在不同线程读取primitive类型变量不会产生这种错误)
posted on 2012-11-17 00:52 Hiji 阅读(194) 评论(0)  编辑  收藏