synchronize是平时用的比较多的多线程问题的解决方案,一般说存在多线程问题,加个锁,就用synchronize吧,简单,方便。今天,就来深入了解一下synchronize知识点。
Synchronized可以加在对象上,也可以加在函数上。
Synchronized 介绍
1:Synchronized. 加在对象上
表示对这个对象加锁,当有线程进入函数后先获取对象的锁,如果获取到锁,进入同步块执行,获取失败,放入阻塞队列中。
public void getOneThings(){ synchronized (object) { int x = Wharehows.number; if (0 == x) { System.out.print("#false"); } else { System.out.print("#true"); Wharehows.number = 0; } } }
2:Synchronized.加在类的普通函数上
表示对这个当前对象上加锁( 对this加锁
),
public synchronized void getOneThings(){ int x = Wharehows.number; if (0 == x) { System.out.print("#false"); } else { System.out.print("#true");