gpt4 book ai didi

c++ - 在线程之间共享数据

转载 作者:行者123 更新时间:2023-11-30 05:09:49 25 4
gpt4 key购买 nike

<分区>

我正在编写一个 Windows 10 应用程序,它通过串行从 4 个不同的传感器(编码器和 IMU)收集数据。我在 C++11 的 Visual Studio 中写这个。每个传感器都有一个线程,可以在无限循环中不断地从中提取数据。

由于我是新手,我目前正在努力以某种方式在单个线程中“收集”数据。我发现我可以使用条件变量向另一个线程发出信号(在我的例子中,我假设我会在每个传感器完成时向主线程发出信号)。在这种情况下,我是否必须将数据存储在一个全局变量中并在我写入数据(从传感器线程)和读取数据(在主循环中)时使用互斥锁保护它?

但是,我担心这个过程对于我的应用程序来说可能太慢了(每个传感器每 1-2 毫秒获取一次新数据),因此在主线程读取时锁定数据的过程中,我会丢失一些数据。将数据(在每个传感器线程内)存储在局部变量中,然后将此变量复制到全局变量,并让主线程仅从第二个变量读取是否有意义?

如果这些是愚蠢的问题,我深表歉意,但我真的需要帮助。任何示例代码将不胜感激。

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