PrintWriter 的 wait 和 notify 方法有什么作用?

PrintWriter what do wait and notify methods do?

我读了 android 文档(很清楚),它说:

等等

Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object.

通知

Causes a thread which is waiting on this object's monitor (by means of calling one of the wait() methods) to be woken up.

这是否意味着:

public synchronized void myAwesomeFunction (PrintWriter out, String[] data)
{
    for (String d : data)
    {
        out.wait();
        out.println (d);
        out.flush();
        out.notify();
    }
}

会等到 PrintWriter 发送完第一个字符串然后移动到下一个吗?还是我完全弄错了?

Java中的每个对象都可以用作锁。这些方法继承自Object class,对线程间的同步很有用。它们与 PrintWriter 功能完全无关。

println() 是一个阻塞函数 - 它不会 return 直到它完成第一个字符串的发送(忽略缓冲)。简单地写这个:

out.println(d);
System.out.println("'d' has finished writing");

你只需要达到同样的效果。当您希望一个线程等待另一个线程时,使用 waitnotify 很有用,但在同一线程中通常没有用。