synchronized关键字

  • 内置锁

    每个Java对象都可以用作一个实现同步的锁,这些锁称为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。

  • 互斥锁

    内置锁是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程A尝试去获得线程B持有的内置锁时,线程A必须等待或者阻塞,直到线程B释放这个锁,如果B线程不释放这个锁,那么A线程将永远等待下去。

  • 修饰普通方法:锁住对象的实例

  • 修饰静态方法:锁住整个类

  • 修饰代码块:锁住一个对象,即synchronized后面括号里的内容

posted @ 2021-05-25 20:25  Gen2021  阅读(38)  评论(0)    收藏  举报