多线程之:线程同步代码块

 java中使用关键字synchronized进行线程同步,有四中同步块:

  1、实例方法

  2、静态方法

  3、实例方法中的同步块

  4、静态方法中的同步块

实例方法同步:在方法申明中使用synchronized 关键字,同步在拥有该方法的对象上

1  public synchronized void increase(){
2          this.id++;   
3  }

静态方法同步:与实例方法同步一样,在方法申明中使用synchronized 关键字,同步在拥有该方法的类对象上,同时只允许一个线程执行同一个类中的静态同步方法

1 public static  synchronized void increase(){
2           this.id++;   
3 }

实例方法中的同步块:在方法申明中不使用synchronized 关键字,但在方法中使用synchronized 包围一部分代码,进行同步

1  public void increase(){
2         synchronized (this){
3            this.id++;   
4         }
5  }

静态方法中的同步块:和静态方法同步类似,在方法申明中不使用synchronized 关键字,在方法中使用synchronized 包围一部分代码,进行同步

1  public static void increase(){
2          synchronized (this){
3             this.id++;   
4          }
5   }
作者:jessezeng
出处:http://www.cnblogs.com/jessezeng/
原文地址:https://www.cnblogs.com/jessezeng/p/5004412.html