java中怎么实现线程通信
1个回答
展开全部
线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务。
Object类中相关的方法有两个notify方法和三个wait方法:
因为wait和notify方法定义在Object类中,因此会被所有的类所继承。
这些方法都是final的,即它们都是不能被重写的,不能通过子类覆写去改变它们的行为。
wait()方法
wait()方法使得当前线程必须要等待,等到另外一个线程调用notify()或者notifyAll()方法猛早稿。
当前的线程必须拥有当前对象的monitor,也即lock,就是锁。
线程调用wait()方法,释放它枝孝对锁的拥有权,然后等待另外的线程来通知它(通知的方式是notify()或者睁如notifyAll()方法),这样它才能重新获得锁的拥有权和恢复执行。
要确保调用wait()方法的时候拥有锁,即,wait()方法的调用必须放在synchronized方法或synchronized块中。
Object类中相关的方法有两个notify方法和三个wait方法:
因为wait和notify方法定义在Object类中,因此会被所有的类所继承。
这些方法都是final的,即它们都是不能被重写的,不能通过子类覆写去改变它们的行为。
wait()方法
wait()方法使得当前线程必须要等待,等到另外一个线程调用notify()或者notifyAll()方法猛早稿。
当前的线程必须拥有当前对象的monitor,也即lock,就是锁。
线程调用wait()方法,释放它枝孝对锁的拥有权,然后等待另外的线程来通知它(通知的方式是notify()或者睁如notifyAll()方法),这样它才能重新获得锁的拥有权和恢复执行。
要确保调用wait()方法的时候拥有锁,即,wait()方法的调用必须放在synchronized方法或synchronized块中。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |