c++ java 如何用Java实现跨线程通信?
浏览量:1995
时间:2021-03-20 03:40:21
作者:admin
如何用Java实现跨线程通信?
synchronized关键字用于实现线程间的通信。
这种方式本质上是“共享内存”通信。多个线程需要访问同一个共享变量。谁拿到锁谁就可以执行。
如果线程a改变了条件,线程B会通过while语句不断检查条件是否为真,从而实现线程间的通信。但是这种方法会浪费CPU资源。您可以参考以下示例:
wait()方法可以使线程进入等待状态,notify()方法可以使等待状态唤醒。这种同步机制非常适合生产者和消费者模式:消费者消费资源,生产者生产资源。当资源丢失时,使用者调用wait()方法自阻塞并等待生产者的产品。生产者完成后,调用notify/notifyAll()来唤醒消费者进行消费。
使用管道通信java.io.PipedInputStream文件& ampjava.io.PipedOutputStream前两个是面向字节的,后两个是面向字符的。以下是一些示例:
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。