1. 首页
  2. 编程语言
  3. Java
  4. Java多线程之synchronized关键字的使用

Java多线程之synchronized关键字的使用

上传者: 2022-08-02 06:36:03上传 PDF文件 52.82 KB 热度 48次

一、使用在非静态方法上二、使用在静态方法上三、使用在代码块上四、三种方式的区别4.1 不会互斥4.2 互斥解析:在图1中thread1和thread分别调用syzDemo和syzDemo1对象中的syzDemo方法,因为两个线程调用是不同的对象的两个方法,所以不会互斥在图2中thread1和thread都在调用syzDemo对象中的syzDemo方法,因为syzDemo方法加了synchronized在图3中thread1和thread分别调用syzDemo和syzDemo1对象中的syzDemo1方法,但是因为syzDemo1方法属于静态方法,在类加载时就会加载到方法区,所以本质上两个线程都在调用同一个方法,于是产生了互斥syzDemo2中与syzDemo相同:锁定的是当前实例的这一段代码,只有多个线程中调用的是同一个实例且执行到这一段代码时才会互斥,syzDemo3于syzDemo1相同:锁定的是当前类的这一段代码,只要多个线程共同执行这一段代码就会产生互斥

用户评论