gpt4 book ai didi

java - java中的线程间通信

转载 作者:IT老高 更新时间:2023-10-28 21:11:42 26 4
gpt4 key购买 nike

相互依赖的线程如何在 Java 中进行通信?

例如,我正在构建一个网络爬虫,其中的线程需要来自其他线程的数据。

最佳答案

以下是线程间通信的示例:

public class Main {
public static void main(String[] args) {
Chat m = new Chat();
new T1(m);
new T2(m);
}
}

class Chat {
boolean flag = false;

public synchronized void FromSam(String msg) {
if (flag) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(msg);
flag = true;
notify();
}

public synchronized void FromJam(String msg) {
if (!flag) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

System.out.println(msg);
flag = false;
notify();
}
}

class T1 implements Runnable {
Chat m;
String[] s1 = { "Hello Jam", "How are you ?", "I am also doing fine!" };

public T1(Chat m1) {
this.m = m1;
new Thread(this, "Sam").start();
}

public void run() {
for (int i = 0; i < s1.length; i++) {
m.FromSam(s1[i]);
}
}
}

class T2 implements Runnable {
Chat m;
String[] s2 = { "HI Sam", "I am good,And U ?", "ha haa" };

public T2(Chat m2) {
this.m = m2;
new Thread(this, "Jam").start();
}

public void run() {
for (int i = 0; i < s2.length; i++) {
m.FromJam(s2[i]);
}
}
}

关于java - java中的线程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2170520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com