1

我用线程制作了一个java程序,有时线程使用静态方法,问题是该方法一次只能运行一次。因此,如果该方法已经在运行,它不应该再次启动,而是等待然后重新启动。

4

2 回答 2

3

您可以简单地将该静态方法标记为synchronized,它将确保互斥:2 个线程将无法同时运行它,其中一个线程必须等到另一个线程完成该方法的执行:

public static synchronized void method() {
    //this part can only be executed by one thread at a time
}

这种表示法等同于使用你的类的监视器作为操作的锁,即:

class YourClass {
    public static void method() {
        synchronized(YourClass.class) {
            //this part can only be executed by one thread at a time
        }
    }
}
于 2013-01-31T17:14:09.007 回答
0

“词”synchronized 会帮助你

public static synchronized void method() {
....code here 
notify();}
于 2013-01-31T17:17:02.930 回答