在Java中,父子线程之间的通信可以通过共享变量、wait()、notify()和notifyAll()方法来实现。这里有一个简单的例子来说明如何在父子线程之间进行通信:
class SharedData { private int data; private boolean dataAvailable = false; public synchronized void setData(int data) { this.data = https://www.yisu.com/ask/data;"Producing data: " + i); sharedData.setData(i); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } class ConsumerThread extends Thread { private SharedData sharedData; public ConsumerThread(SharedData sharedData) { this.sharedData = https://www.yisu.com/ask/sharedData;"Consuming data: " + data); Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } } } public class Main { public static void main(String[] args) { SharedData sharedData = https://www.yisu.com/ask/new SharedData();>在这个例子中,我们创建了一个名为
SharedData
的类,它包含一个整数变量data
和一个布尔变量dataAvailable
。setData()
方法用于设置数据,并将dataAvailable
设置为true
。getData()
方法用于获取数据,当数据不可用时,它会等待。
ProducerThread
和ConsumerThread
分别是生产者和消费者线程,它们共享一个SharedData
对象。生产者线程使用setData()
方法生成数据,消费者线程使用getData()
方法消费数据。通过这种方式,父子线程可以进行通信。