确保方法在当时运行

时间:2013-01-31 17:12:42

标签: java multithreading

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

2 个答案:

答案 0 :(得分: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
        }
    }
}

答案 1 :(得分:0)

“word”synchronized会帮助你

public static synchronized void method() {
....code here 
notify();}