Java使用synchronized怎么实现互斥锁功能

这篇文章主要为大家展示了Java使用synchronized怎么实现互斥锁功能,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

成都创新互联主营龙华网站建设的网络公司,主营网站建设方案,成都app开发,龙华h5微信小程序搭建,龙华网站营销推广欢迎龙华等地区企业咨询

代码

package per.thread;
 
import java.io.IOException;
 
public class Test {
  
  private int i = 0;
  private Object object = new Object();
   
  public static void main(String[] args) throws IOException {
    
   Test test = new Test();
    
    Test.MyThread thread1 = test.new MyThread();
    Test.MyThread thread2 = test.new MyThread();
    thread1.start();
    thread2.start();
  } 
   
  class MyThread extends Thread{
    @Override
    public void run() {
      synchronized (object) {
        i++;
        System.out.println("i:"+i);
        try {
          System.out.println("线程"+Thread.currentThread().getName()+"进入睡眠状态");
          Thread.currentThread().sleep(10000);
        } catch (InterruptedException e) {
          // TODO: handle exception
        }
        System.out.println("线程"+Thread.currentThread().getName()+"睡眠结束");
        i++;
        System.out.println("i:"+i);
      }
    }
  }
}

实现

i:1
线程Thread-0进入睡眠状态
线程Thread-0睡眠结束
i:2
i:3
线程Thread-1进入睡眠状态
线程Thread-1睡眠结束
i:4

分析

在thread1休眠之后,thread2没有立即执行,因为给object加了synchronized。

以上就是关于Java使用synchronized怎么实现互斥锁功能的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。


分享文章:Java使用synchronized怎么实现互斥锁功能
路径分享:http://myzitong.com/article/gdsces.html