java synchronized关键字
如果synchronized(this)则获取的是对象锁,当获取的是对象锁的时候,其他线程无法访问改对象里面的任何有synchronized方法,这一点我可以理解,现在我的synchronized是加在方法上面,在网上查了一下,说获得的是成员锁,但是不明白的是synchronized加在方法上面,为什么其他线程也是无法访问改对象里面的任何有synchronized方法?
主要代码如下:
public synchronized void mainProcee() {
//TODO
}
public synchronized void subProcee() {
//TODO
}
//测试代码:
// main thread
new Thread(new Runnable() {
@Override
public void run() {
pro.mainProcee();
}
}).start();
// sub thread
new Thread(new Runnable() {
@Override
public void run() {
pro.subProcee();
}
}).start();
}