美文网首页
多线程5:synchronized锁方法块

多线程5:synchronized锁方法块

作者: 不怕天黑_0819 | 来源:发表于2020-06-19 16:51 被阅读0次

先陈述结论,具体代码示例暂不做演示。

1.synchronized 同步代码块

1、当A线程访问对象的synchronized代码块的时候,B线程依然可以访问对象方法中其余非synchronized块的部分。
2、当A线程进入对象的synchronized代码块的时候,B线程如果要访问这段synchronized块,那么访问将会被阻塞。

2.两个synchronized块之间具有互斥性

synchronized块获得的是一个对象锁,换句话说,synchronized块锁定的是整个对象。

3.将任意对象作为对象监视器

总结一下前面的内容:
1、synchronized同步方法
(1)对其他synchronized同步方法或synchronized(this)同步代码块呈阻塞状态
(2)同一时间只有一个线程可以执行synchronized同步方法中的代码

2、synchronized同步代码块
(1)对其他synchronized同步方法或synchronized(this)同步代码块呈阻塞状态
(2)同一时间只有一个线程可以执行synchronized(this)同步代码块中的代码

  • Java还支持对"任意对象"作为对象监视器来实现同步的功能。这个"任意对象"大多数是实例变量及方法的参数,使用格式为synchronized(非this对象)
  • 锁非this对象具有一定的优点:如果在一个类中有很多synchronized方法,这时虽然能实现同步,但会受到阻塞,从而影响效率。但如果同步代码块锁的是非this对象,则synchronized(非this对象x)代码块中的程序与同步方法是异步的,不与其他锁this同步方法争抢this锁,大大提高了运行效率。

4.细化synchronized(非this对象x)的三个结论

synchronized(非this对象x)格式的写法是将x对象本身作为对象监视器,有三个结论得出:
1、当多个线程同时执行synchronized(x){}同步代码块时呈同步效果
2、当其他线程执行x对象中的synchronized同步方法时呈同步效果
3、当其他线程执行x对象方法中的synchronized(this)代码块时也呈同步效果

参考链接:https://www.cnblogs.com/xrq730/p/4851530.html

相关文章

  • 多线程锁

    多线程锁有三种方式 synchronized 方法 synchronized 代码块 使用 Lock加锁,加锁后需...

  • 多线程5:synchronized锁方法块

    先陈述结论,具体代码示例暂不做演示。 1.synchronized 同步代码块 1、当A线程访问对象的synchr...

  • JUC学习笔记三

    JUC学习笔记三 用于解决多线程同步问题的方式 隐式锁(synchronized) 同步代码块 同步方法 显式锁(...

  • 同步锁Lock

    用于解决多线程安全问题的方式:synchronized 隐式锁 同步代码块 同步方法 jdk1.5后新增 同步锁...

  • 并发编程(二)初识synchronized与ReentrantL

    Synchronized修饰方法,代码块类锁,对象锁 synchronized实现原理:monitorenter与...

  • 静态锁与对象锁

    一、对象锁 synchronized关键字修饰普通方法或者方法中代码块。防止多线程中同一个实例同时访问该对象的方法...

  • wait方法

    wait方法需在synchronized方法或synchronized代码块中使用,调用后立即释放锁。

  • Java中synchronized原理

    前言 synchronized可以修饰方法和代码块。synchronized需要持有一个对象锁。分为类锁和对象锁。...

  • synchronized(修饰方法和代码块)

    synchronized(修饰方法和代码块) 1. 含义 synchronized 是同步锁,用来实现互斥同步。 ...

  • 第一周:理解Java中的Synchronized关键字

    指标:理解Synchronized的含义,明确Synchronized关键字修饰普通方法、静态方法和代码块时锁对象...

网友评论

      本文标题:多线程5:synchronized锁方法块

      本文链接:https://www.haomeiwen.com/subject/qqqbxktx.html