gpt4 book ai didi

Java串行通信和多线程

转载 作者:太空宇宙 更新时间:2023-11-04 14:03:58 25 4
gpt4 key购买 nike

我正在将数据从 Arduino 读取到我构建的 Java 程序中。我想对数据做的是图表并同时存储它(可能在 CSV 中)。绘图和存储应该不会太难。我担心的是速度足够快,以免丢失任何传入数据。因此,我在这里的问题主要是设计问题。

我当前的思考过程:我在 main() 中有一个事件监听器,它获取所有传入的串行数据并将其放入队列中。我有一个线程(我们称之为线程 A)在另一端等待数据。该线程会立即将数据发送到另一个线程 (B),然后再将其保存到文件中。线程 B 担心绘制数据图。

但是我很好奇,当线程 A 从队列中提取数据时,尝试从事件监听器进入的所有数据会发生什么情况?如果第一个队列很忙并且只是来回交换,我是否应该有另一个队列?

另外,对于使用什么类型的队列有什么想法吗?感谢在该领域有经验的人提供的任何意见。

其他信息:我正在 Linux (Ubuntu) 上工作,但希望该程序独立于平台。我正在使用 JSSC 库来读取串行数据。

最佳答案

  1. 您可以使用 Java 的并发队列,因为它们是线程安全的。例如ConcurrentLinkedDeque或ConcurrentLinkedQueue。如果您不使用并发队列,当您尝试使用多个线程访问队列时,它会抛出 ConcurrentModificationException

  2. 关于发送数据的速度的问题可以通过限制通过串行端口发送的数量/频率来解决。尽管这可能不是问题。

关于Java串行通信和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29051585/

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