介绍:
我想创建一个多线程的 android 应用程序。我的问题是线程之间的通信。我阅读了有关线程之间的通信的文章,并且遇到了诸如 Looper/Handler 设计之类的东西,这似乎很复杂,还有诸如 AtomicInteger 之类的原子变量。目前,我使用 AtomicInteger 作为通信工具,但由于我在 Java 方面的经验不是很丰富,我不确定这对我的情况是否不利/是否有更好的解决方案来满足我的特定目的。当我注意到我实际上需要像 AtomicFloat 这样的东西时,我也对我的方法有点怀疑,但它并不存在。我觉得我错过了这个概念。我还发现你可以让自己成为 AtomicFloat,但我只是不确定我是否走在正确的道路上,或者是否有更好的技术。
问题: 为我的特定目的使用原子变量并实现 AtomicFloat 是否可以/很好(如下所述),还是有更好的处理通信的方法?
到目前为止使用 AtomicVariables 的应用程序的目的/架构:
我有 4 个线程,目的如下:
1.SensorThread:读取传感器数据并将最新的值保存在 AtomicVariables 中,例如
AtomicFloat gyro_z,AtomicFloat gyro_y, ...
2.CommunicationThread:与 PC 通信,解释来自套接字的命令,并根据 AtomicInteger:AtomicInteger 状态设置应用程序的状态;
3.UIThread:显示来自AtomicFloat gyro_z,AtomicFloat gyro_y,的当前传感器值,
4.ComputationThread:使用传感器值AtomicFloat gyro_z,AtomicFloat gyro_y, ...
和状态AtomicInteger state
进行计算并通过USB发送命令。