java - 如何在 Java 中使用 wait()/notify()

标签 java wait notify

我知道有几个关于这个主题的讨论帖,但我只是在寻找一个关于如何在 Java 中使用 wait() 和 notify() 的非常基本的示例。 “非常初级”,我的意思是简单地打印一些东西。谢谢。

编辑:这是我迄今为止尝试过的方法,我得到了一个 IllegalMonitorStateException:

public void waiting() {
        for(int i = 0; i < 10; i++) {
            如果(我==5)
                尝试 {
                    这个。等待();
                }  catch (InterruptedException e){

                }
            别的
                System.out.println(i);
        }
        System.out.println("现在通知我");
        这个。通知();
}

最佳答案

wait 和 notify 在同步块(synchronized block)中使用,同时使用线程在停止的地方挂起和恢复。

等待立即松开锁,而 Nofity 只有在遇到结束括号时才会离开锁。

public class Mythread implements Runnable{



public synchronized void goo(){

System.out.println("Before Wait");

wait();

System.out.println("After Wait");


}


public synchronized void foo(){

System.out.println("Before Notify");

notify();

System.out.println("After Notify");

}


public class Test{

public static  void main(String[] args){

Thread t = new Thread(new Mythread);

t.start();

 }
}

关于java - 如何在 Java 中使用 wait()/notify(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11526374/

相关文章:

javascript - 更改notify js插件自动隐藏延迟时间

c# - 单个实例并在系统托盘中通知

java - 我面临的问题是 dateFormat.parse(string)?

Java:线程不会等待

java - 没有获得扩展类中变量的正确值

sql-server-2012 - 清除等待统计信息的安全性如何

java - 如何等待 FileChooser 选择?

C++等待问题

java - 新行字符\n 在 Android 的 TextView 中的阿拉伯文本中不起作用

java - 如何将实体数据加载到对象中 - GoogleAppEngine - 低级 API