线程和静态方法

时间:2014-09-28 17:29:01

标签: java multithreading

我的问题是关于Java的。 几个线程可以同时访问静态类的静态方法,还是一次只能执行一个线程?

如果我在方法头中使用synchronized,一次只能有一个线程执行吗?

1 个答案:

答案 0 :(得分:3)

  

几个线程可以同时访问静态类的静态方法,还是一次只能有一个线程执行该方法?

是的,他们可以。除非方法是synchronized,否则对可以访问该方法的线程数没有限制。

  

如果我在方法头中使用synchronized,一次只能有一个线程执行吗?

完全。 "方法标题"静态方法上的synchronized关键字会对类本身施加锁,从而阻止其他线程进入。

public static synchronized void foo() {
    ...
}

(差不多)等同于

public static void foo() {
   synchronized(MyClass.class) {
      ...
   }
}