我收到错误:
package main_test;
public class Main {
public static void main(String[] args) throws InterruptedException
{
Main m = new Main();
System.out.println("Main Started");
m.wait();
System.out.println("Main Terminated");
}
}
最佳答案
您必须先获取锁,然后才能调用 wait。尝试这样的事情:
public static void main(String[] args) throws InterruptedException {
Main m = new Main();
System.out.println("Main Started");
synchronized (m) {
m.wait();
}
System.out.println("Main Terminated");
}
但是现在程序显然不会终止。其他一些线程需要对您调用 wait()
的对象调用 notify()
。 (这就是为什么使用局部变量是一个坏主意,但这只是一个例子......)
请参阅java tutorial了解更多信息。
关于java - 如何在 main 方法中调用 wait() 方法?如果我使用它,它将给出 java.lang.IllegalMonitorStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32088544/