作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如果一个类中有一个synchronized方法,1个线程进入它,另一个线程是否可以在不同的对象上调用相同的方法。
最佳答案
是的,如果方法不是static
。
synchronized
非静态方法在 this
上同步。所以这个方法:
public synchronized void foo() {
// do stuff
}
实际上等同于这个:
public void foo() {
synchronized(this) {
// do stuff
}
}
static
synchronized 方法在当前类上进行同步。所以像这样的方法:
public static synchronized void bar() {
// do stuff
}
实际上等同于这个:
public static void bar() {
synchronized(ThisClass.class) {
// do stuff
}
}
关于java - Java 中的线程和同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5168272/
我是一名优秀的程序员,十分优秀!