有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从正在运行的线程传递值

我将从一个简短的描述开始: 作为一个学校项目,我正在建立一个监控化学反应器温度的系统。我们使用arduino进行测量,它将数据作为字符串发送到pc。在pc上,我们有一个Java代码来读取该字符串,解析它,并在gui中显示它

我们面临的问题如下: 我们有一个

  • 类,该类读取输入字符串并将其打印到控制台
  • 类,该类接受正确格式的伪字符串,对其进行解析,并在GUI中显示它

问题是,我们正在寻找一种方法,在不中断循环的情况下将数据从读取器传递到解析器,并使其线程安全,这样我们就不会丢失数据。有没有一种有效的方法可以做到这一点


共 (1) 个答案

  1. # 1 楼答案

    您需要将函数分成不同的类,并通过Queue安排对象间的通信

    将代码重构为:

    • 类,该类读取输入字符串并将其发布到队列中
    • 类,该类读取输入字符串队列,并将每个字符串发布到控制台队列和GUI队列中
    • 类,该类使用控制台队列将所有内容写入控制台
    • 类,该类使用GUI队列、解析字符串并更新GUI

    还有其他体系结构(例如使用侦听器发布/订阅),但这应该适合您