以取钱作为案例,这里我使用的是代码块同步的方式。

 1 public class Test3 {
 2         public static void main(String[] args) {
 3             A3 a31=new A3();
 4             a31.start();
 5             A3 a32=new A3();
 6             a32.start();
 7         }
 8 }
 9 class A3 extends Thread{
10     static int sum=1000;
11     public  void run() {
12         //每次取100
13         synchronized("abc") {
14             while(sum>0) {
15             sum-=100;
16             System.out.println("sum:"+sum);
17             }
18         }
19     }
20 }

输出如下:

如果去掉synchronized同步,会有类似如下的输出: