【问题标题】:pass value from running thread从正在运行的线程传递值
【发布时间】:2015-03-06 11:15:43
【问题描述】:

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

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

  • 读取输入字符串并将其打印到控制台的类
  • 采用正确格式的虚拟字符串、对其进行解析并在 GUI 中显示的类

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

【问题讨论】:

    标签: java multithreading parameter-passing string-parsing


    【解决方案1】:

    您需要将函数分成单独的类,并通过Queues 安排对象间通信。

    将您的代码重构为:

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

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

    【讨论】:

    • 控制台只是用于测试,所以我不需要它,但您的其余帖子非常有帮助,谢谢
    猜你喜欢
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多