Java多線程 原子性的介紹

@[toc]java

原子性的介紹

原子性是指:  一系列的操做, 要麼所有執行成功, 要麼所有執行失敗, 不會出現執行一半的狀況, 這一系列操做是不可分割的.  安全

典型的i++操做就不是原子性的.  例以下圖中i++是要先讀取i, 再加一, 再給賦值回去, 是三步.   用synchronized鎖把這三個步驟鎖起來, 才能實現原子性.  併發

 Java中的原子操做 

  1. 除了long和double 以外的基本數據類型(int byte boolean short char float)的賦值操做
  2. 全部引用類型的reference的賦值操做,不管是32位仍是64位機器
  3. java.concurrent.Atomic.*包中的全部類的原子操做.

能夠看到Java中的原子操做 目前只有這三種,  其餘都不是原子操做.  那麼在併發環境下, 有多是形成線程安全問題的. 線程

相關文章
相關標籤/搜索