<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>