你的位置:首页 > 软件开发 > Java > Java synchronized关键字用法(清晰易懂)

Java synchronized关键字用法(清晰易懂)

发布时间:2016-10-06 13:00:05
本篇随笔主要介绍 java 中 synchronized 关键字常用法,主要有以下四个方面:  1、实例方法同步  2、静态方法同步  3、实例方法中同步块  4、静态方法中同步块    我觉得在学习synchronized关键字之前,我们首先需要知道以下一点:Java 中每个实 ...

Java synchronized关键字用法(清晰易懂)

本篇随笔主要介绍 java 中 synchronized 关键字常用法,主要有以下四个方面:

  1、实例方法同步

  2、静态方法同步

  3、实例方法中同步块

  4、静态方法中同步块

  

  我觉得在学习synchronized关键字之前,我们首先需要知道以下一点:Java 中每个实例对象对应一把锁且每个实例对象只有一把锁,synchronized 关键字是通过对相应的实例对象加锁来实现同步功能的。

  

  一、实例方法中使用 synchronized 加锁

  实例方法中默认被加锁的对象是调用此方法的实例对象。

  

 1 class ImmutableValue { 2   public synchronized void comeIn() throws InterruptedException{ 3     System.out.println(Thread.currentThread().getName() + ": start"); 4     Thread.sleep(5000); 5     System.out.println(Thread.currentThread().getName() + ": finish"); 6   } 7   public void synchronized comeInIn() throws InterruptedException { 8     System.out.println(Thread.currentThread().getName() + ": start"); 9     Thread.sleep(5000);10     System.out.println(Thread.currentThread().getName() + ": finish");11   }12 }13 public class TestImmutableValue {14   public static void main(String[] args) {15     ImmutableValue im = new ImmutableValue();16     Thread t1 = new Thread(new Runnable() {17 18       @Override19       public void run() {20         // TODO Auto-generated method stub21         try {22           im.comeIn();23         } catch (InterruptedException e) {24           // TODO Auto-generated catch block25           e.printStackTrace();26         }27       }28       29     }, "t1");30     Thread t2 = new Thread(new Runnable() {31 32       @Override33       public void run() {34         // TODO Auto-generated method stub35         try {36           im.comeInIn();37         } catch (InterruptedException e) {38           // TODO Auto-generated catch block39           e.printStackTrace();40         }41       }42       43     }, "t2");44     t1.start();45     t2.start();46   }47 }

原标题:Java synchronized关键字用法(清晰易懂)

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。