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