PrintWriter做什么等待和通知方法呢?

时间:2016-02-18 21:09:42

标签: java android printwriter

我阅读了android文档(很明显是泥浆),它说:

等待

  

使调用线程等到另一个线程调用此对象的notify()或notifyAll()方法。

通知

  

导致正在等待此对象监视器的线程(通过调用其中一个wait()方法)被唤醒。

这是否意味着:

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

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

1 个答案:

答案 0 :(得分:2)

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

println()是一个阻塞函数 - 它在完成发送第一个字符串(忽略缓冲)之前不会返回。只需写下:

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

你需要达到同样的效果吗?当您希望一个线程等待另一个线程时,使用waitnotify非常有用,并且在同一个线程中通常不常用。