Java并发编程学习笔记(十)Java同步块 喜欢ヅ旅行 2022-05-31 14:20 167阅读 0赞 Java 同步块(synchronized block)用来标记方法或者代码块是同步的。Java同步块用来避免竞争。本文介绍以下内容: * Java同步关键字(synchronzied) * 实例方法同步 * 静态方法同步 * 实例方法中同步块 * 静态方法中同步块 * Java同步示例 **Java 同步关键字(synchronized)** Java中的同步块用synchronized标记。同步块在Java中是同步在某个对象上。所有同步在一个对象上的同步块在同时只能被一个线程进入并执行操作。所有其他等待进入该同步块的线程将被阻塞,直到执行该同步块中的线程退出。 有四种不同的同步块: 1. 实例方法 2. 静态方法 3. 实例方法中的同步块 4. 静态方法中的同步块 上述同步块都同步在不同对象上。实际需要那种同步块视具体情况而定。 **实例方法同步** 下面是一个同步的实例方法: <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">1</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">synchronized</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">add(</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">int</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">value){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">2</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">this</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">.count += value;</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">3</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> 注意在方法声明中同步(synchronized )关键字。这告诉Java该方法是同步的。 Java实例方法同步是同步在拥有该方法的对象上。这样,每个实例其方法同步都同步在不同的对象上,即该方法所属的实例。只有一个线程能够在实例方法同步块中运行。如果有多个实例存在,那么一个线程一次可以在一个实例同步块中执行操作。一个实例一个线程。 **静态方法同步** 静态方法同步和实例方法同步方法一样,也使用synchronized 关键字。Java静态方法同步如下示例: <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">1</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">static</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">synchronized</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">add(</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">int</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">value){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">2</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">count += value;</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">3</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> 同样,这里synchronized 关键字告诉Java这个方法是同步的。 静态方法的同步是指同步在该方法所在的类对象上。因为在Java虚拟机中一个类只能对应一个类对象,所以同时只允许一个线程执行同一个类中的静态同步方法。 对于不同类中的静态同步方法,一个线程可以执行每个类中的静态同步方法而无需等待。不管类中的那个静态同步方法被调用,一个类只能由一个线程同时执行。 **实例方法中的同步块** 有时你不需要同步整个方法,而是同步方法中的一部分。Java可以对方法的一部分进行同步。 在非同步的Java方法中的同步块的例子如下所示: <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">1</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">add(</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">int</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">value){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">2</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">3</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">synchronized</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">(</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">this</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">4</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">this</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">.count += value;</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">5</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">6</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> 示例使用Java同步块构造器来标记一块代码是同步的。该代码在执行时和同步方法一样。 注意Java同步块构造器用括号将对象括起来。在上例中,使用了“this”,即为调用add方法的实例本身。在同步构造器中用括号括起来的对象叫做监视器对象。上述代码使用监视器对象同步,同步实例方法使用调用方法本身的实例作为监视器对象。 一次只有一个线程能够在同步于同一个监视器对象的Java方法内执行。 下面两个例子都同步他们所调用的实例对象上,因此他们在同步的执行效果上是等效的。 <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">01</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">class</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">MyClass { </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">02</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">03</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">synchronized</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log1(String msg1, String msg2){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">04</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log.writeln(msg1);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">05</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log.writeln(msg2);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">06</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">07</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">08</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log2(String msg1, String msg2){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">09</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">synchronized</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">(</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">this</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">10</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log.writeln(msg1);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">11</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log.writeln(msg2);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">12</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">13</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">14</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> 在上例中,每次只有一个线程能够在两个同步块中任意一个方法内执行。 如果第二个同步块不是同步在this实例对象上,那么两个方法可以被线程同时执行。 **静态方法中的同步块** 和上面类似,下面是两个静态方法同步的例子。这些方法同步在该方法所属的类对象上。 <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">01</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">class</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">MyClass { </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">02</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">static</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">synchronized</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log1(String msg1, String msg2){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">03</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log.writeln(msg1);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">04</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log.writeln(msg2);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">05</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">06</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">07</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">static</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log2(String msg1, String msg2){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">08</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">synchronized</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">(MyClass.</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">class</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">09</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log.writeln(msg1);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">10</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">log.writeln(msg2);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">11</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">12</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">13</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> 这两个方法不允许同时被线程访问。 如果第二个同步块不是同步在MyClass.class这个对象上。那么这两个方法可以同时被线程访问。 **Java同步实例** 在下面例子中,启动了两个线程,都调用Counter类同一个实例的add方法。因为同步在该方法所属的实例上,所以同时只能有一个线程访问该方法。 <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">01</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">class</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Counter{ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">02</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">long</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">count = </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,153,0);">0</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">;</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">03</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">04</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">synchronized</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">add(</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">long</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">value){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">05</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">this</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">.count += value;</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">06</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">07</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">08</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">class</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">CounterThread </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">extends</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Thread{ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">09</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">10</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">protected</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Counter counter = </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">null</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">;</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">11</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">12</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">CounterThread(Counter counter){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">13</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">this</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">.counter = counter;</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">14</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">15</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">16</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">run() { </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">17</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">for</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">(</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">int</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">i=</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,153,0);">0</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">; i<</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,153,0);">10</code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">; i++){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">18</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">counter.add(i);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">19</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">20</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">21</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">22</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">class</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Example { </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">23</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">24</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">static</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">main(String[] args){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">25</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Counter counter = </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">new</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Counter();</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">26</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Thread threadA = </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">new</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">CounterThread(counter);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">27</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Thread threadB = </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">new</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">CounterThread(counter);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">28</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">29</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">threadA.start();</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">30</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">threadB.start();</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">31</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">32</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> 创建了两个线程。他们的构造器引用同一个Counter实例。Counter.add方法是同步在实例上,是因为add方法是实例方法并且被标记上synchronized关键字。因此每次只允许一个线程调用该方法。另外一个线程必须要等到第一个线程退出add()方法时,才能继续执行方法。 如果两个线程引用了两个不同的Counter实例,那么他们可以同时调用add()方法。这些方法调用了不同的对象,因此这些方法也就同步在不同的对象上。这些方法调用将不会被阻塞。如下面这个例子所示: <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">01</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">class</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Example { </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">02</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">03</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">public</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">static</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">void</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">main(String[] args){ </code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">04</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Counter counterA = </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">new</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Counter();</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">05</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Counter counterB = </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">new</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Counter();</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">06</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Thread threadA = </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">new</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">CounterThread(counterA);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">07</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">Thread threadB = </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-weight:bold;font-size:1em;color:rgb(127,0,85);">new</code> <code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">CounterThread(counterB);</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">08</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"> </td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">09</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">threadA.start();</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">10</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">threadB.start();</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">11</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> <table style="margin:0px;padding:0px;width:auto;border:0px;background:none;float:none;vertical-align:baseline;height:auto;line-height:1.1em;font-size:1em;"> <tbody style="margin:0px;padding:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <tr style="margin:0px;padding:0px;border-top:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-size:1em;"> <td style="border-width:0px;padding:0px;margin:0px;background-image:none;float:none;vertical-align:top;height:auto;width:3em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(120,120,120);"><code style="margin:0px;padding:0px .3em 0px 0px;border:0px;background:none;text-align:right;float:none;vertical-align:baseline;height:auto;width:2.7em;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;">12</code></td> <td style="border-top:0px;border-right:0px;border-bottom:0px;border-left-color:rgb(212,208,200);padding:0px 0px 0px .5em;margin:0px;background:none;float:none;vertical-align:top;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);"><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;"> </code><code style="margin:0px;padding:0px;border:0px;background:none;float:none;vertical-align:baseline;height:auto;width:auto;line-height:1.1em;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:1em;color:rgb(0,0,0);">}</code></td> </tr> </tbody> </table> 注意这两个线程,threadA和threadB,不再引用同一个counter实例。CounterA和counterB的add方法同步在他们所属的对象上。调用counterA的add方法将不会阻塞调用counterB的add方法。 **原创文章,转载请注明:** 转载自[并发编程网 – ifeve.com][_ ifeve.com]**本文链接地址:** [Java同步块][Java] [_ ifeve.com]: http://ifeve.com/ [Java]: http://ifeve.com/synchronized-blocks/
相关 Java并发编程——理解锁和同步块 在Java的并发编程中,锁和同步块是实现线程间互斥的重要手段。 1. 锁(Lock): - Java提供了`java.util.concurrent.locks.Loc 曾经终败给现在/ 2024年09月12日 00:24/ 0 赞/ 14 阅读
相关 《Java并发编程学习笔记》.pdf 关注“Java后端技术全栈” 回复“面试”获取全套面试资料 人们一直认为并发编程技术是 Java 编程中的高级技术,没有必要掌握。 由于一些技术框架提供了较好的多线 朱雀/ 2023年01月21日 07:23/ 0 赞/ 11 阅读
相关 【Java并发编程】java并发框架Executor学习笔记 Java SE5的java.util.concurrent包中的执行器(Executor)将为你管理Thread对象,从而简化了并发编程。Executor在客户端和执行任务之间 港控/mmm°/ 2022年08月19日 14:28/ 0 赞/ 200 阅读
相关 Java并发学习之十四——使用Lock同步代码块 本文是学习网络上的文章时的总结,感谢大家无私的分享。 Java提供另外的机制用来同步代码块。它比synchronized关键字更加强大、灵活。Lock 接口比synchron 淡淡的烟草味﹌/ 2022年08月12日 01:59/ 0 赞/ 132 阅读
相关 Java并发编程学习笔记(十)Java同步块 Java 同步块(synchronized block)用来标记方法或者代码块是同步的。Java同步块用来避免竞争。本文介绍以下内容: Java同步关键字(synchr 喜欢ヅ旅行/ 2022年05月31日 14:20/ 0 赞/ 168 阅读
相关 Java并发编程学习笔记(四)并发编程模型 原文链接 作者: Jakob Jenkov 译者: 林威建 \[weakielin@gmail.com\] 并发系统可以采用多种并发编程模型来实现。并发模型指定 柔光的暖阳◎/ 2022年05月31日 13:21/ 0 赞/ 239 阅读
相关 Java并发编程学习笔记(十三)死锁 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。 例如,如果线程1锁住了A,然后尝试对B进行加锁, 矫情吗;*/ 2022年05月30日 01:12/ 0 赞/ 223 阅读
相关 Java并发编程学习笔记(十二)Java TheadLocal Java中的ThreadLocal类可以让你创建的变量只被同一个线程进行读和写操作。因此,尽管有两个线程同时执行一段相同的代码,而且这段代码又有一个指向同一个ThreadLoc 我就是我/ 2022年05月30日 01:09/ 0 赞/ 161 阅读
相关 JAVA并发编程学习笔记 线程安全: 就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据 ゝ一纸荒年。/ 2022年04月02日 06:54/ 0 赞/ 268 阅读
还没有评论,来说两句吧...