我的问题是关于Java的。 几个线程可以同时访问静态类的静态方法,还是一次只能执行一个线程?
如果我在方法头中使用synchronized,一次只能有一个线程执行吗?
答案 0 :(得分:3)
几个线程可以同时访问静态类的静态方法,还是一次只能有一个线程执行该方法?
是的,他们可以。除非方法是synchronized
,否则对可以访问该方法的线程数没有限制。
如果我在方法头中使用synchronized,一次只能有一个线程执行吗?
完全。 "方法标题"静态方法上的synchronized
关键字会对类本身施加锁,从而阻止其他线程进入。
public static synchronized void foo() {
...
}
(差不多)等同于
public static void foo() {
synchronized(MyClass.class) {
...
}
}