天天看点

Oracle官方并发教程之原子变量

<code>01</code>

<code>class</code> <code>counter {</code>

<code>02</code>

<code>    </code><code>private</code> <code>int</code> <code>c = </code><code>0</code><code>;</code>

<code>03</code>

<code>    </code><code>public</code> <code>void</code> <code>increment() {</code>

<code>04</code>

<code>        </code><code>c++;</code>

<code>05</code>

<code>    </code><code>}</code>

<code>06</code>

<code>07</code>

<code>    </code><code>public</code> <code>void</code> <code>decrement() {</code>

<code>08</code>

<code>        </code><code>c--;</code>

<code>09</code>

<code>10</code>

<code>11</code>

<code>    </code><code>public</code> <code>int</code> <code>value() {</code>

<code>12</code>

<code>        </code><code>return</code> <code>c;</code>

<code>13</code>

<code>14</code>

<code>}</code>

<code>class</code> <code>synchronizedcounter {</code>

<code>    </code><code>public</code> <code>synchronized</code> <code>void</code> <code>increment() {</code>

<code>    </code><code>public</code> <code>synchronized</code> <code>void</code> <code>decrement() {</code>

<code>    </code><code>public</code> <code>synchronized</code> <code>int</code> <code>value() {</code>

<a href="http://ifeve.com/atomic-variables/#viewsource">查看源代码</a>

<code>import</code> <code>java.util.concurrent.atomic.atomicinteger;</code>

<code>class</code> <code>atomiccounter {</code>

<code>    </code><code>private</code> <code>atomicinteger c = </code><code>new</code> <code>atomicinteger(</code><code>0</code><code>);</code>

<code>        </code><code>c.incrementandget();</code>

<code>        </code><code>c.decrementandget();</code>

<code>        </code><code>return</code> <code>c.get();</code>

继续阅读