线程间的通信
一,概述。 1.什么叫做线程间通信: 在1个进程中,线程往往不是孤立存在的,线程之间需要一些协调通信,来共同完成一件任务。也就是通过一定的方法来实现线程间的“交流”。 2.线程间通信的体现: - 1个线程传递数据给另1个线程 - 在1个线程中执行完特定任务后,转到另1个线程继续执行任务 二,线程通信的方法。 Object类中相关的方法有两个notify方法和三个wait方法:notify() / notifyAll() / wait() 因为wait和notify方法定义在Object类中,因此会被所有的类所继承。这些方法都是 final 的,即它们都是不能被重写的,不能通过子类覆写去改变它们的行为。 1.wait()方法。 语法:锁对象.wait() 特点:wait()方法的调用使得当前线程必须要等待,直到另外一个线程调用notify()或者notifyAll()方法。 wait()方法的调用必须在同步的前提下。(因为该方法是要用锁对象调用,而只有在同步的情况下才有锁) wait()方法的调用会导致锁的释放。 线程调用wait()方法,释放它对锁的拥有权,然后等待另外的线程来通知它(通知的方式是notify()或者notifyAll()方法),这样它才能重新获得锁的拥有权和恢复执行。要确保调用wait(