synchronize的心得
Posted 逐客教我
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了synchronize的心得相关的知识,希望对你有一定的参考价值。
记录一下synchronize(this)、synchronize(A.class)、private B b= new B(); synchronize(b) 、synchronize static(A.class)的使用。
其中synchronize(this) 锁的是当前对象,它的使用和private B b= new B(); synchronize(b) 一致,但是如果在一个类中,两个方法一个使用的synchronize(this)一个使用了private B b= new B(); synchronize(b) 这还是异步操作,因为这是锁的两个对象。如果两个方法都是用synchronize(this)或者都是用private B b= new B(); synchronize(b)这两个中的一种,则这两个方法会阻塞,方法间竞争锁。
synchronize(A.class)和synchronize static(A.class)本质一样,都是class级别的锁,打个比方:
A a = new A();
A a1 = new A();
起两个线程共同处理A的一个同步方法,会顺序执行。而如果是使用synchronize(this) 则因为两个对象,所以会异步执行奥。抽空这里弄点例子。呼呼哈嘿。
以上是关于synchronize的心得的主要内容,如果未能解决你的问题,请参考以下文章
java 多线程 Synchronized方法和方法块 synchronized(this)和synchronized(object)的理解