Ich möchte eine Multithread-Android-App erstellen. Mein Problem ist die Kommunikation zwischen den Threads. Ich las über die Kommunikation zwischen Threads und stieß auf Dinge wie das Looper/Handler-Design, das ziemlich involviert schien und Atomic-Variablen wie AtomicInteger. Für den Moment habe ich AtomicInteger als Kommunikation benutzt, aber da ich in Java nicht sehr erfahren bin, bin ich nicht sicher, ob das in meinem Fall schlecht ist/ob es eine bessere Lösung für meinen speziellen Zweck gibt. Ich wurde auch ein wenig misstrauisch gegenüber meiner Methode, als ich bemerkte, dass ich eigentlich etwas wie AtomicFloat brauche, aber es ist nicht vorhanden. Ich fühlte mich, als missbrauche ich das Konzept. Ich habe auch festgestellt, dass du dich zu einer AtomicFloat machen kannst, aber ich bin mir nicht sicher, ob ich auf dem richtigen Weg bin oder ob es eine bessere Technik gibt.
Frage: Ist es in Ordnung/gut atomare Variablen zu verwenden und auch AtomicFloat für meinen speziellen Zweck (unten beschrieben) zu implementieren oder gibt es einen besseren Weg, die Kommunikation zu handhaben?
Zweck/Architektur der App AtomicVariables mit bisher:
Ich habe 4 Themen mit folgendem Zweck:
1.SensorThread: Sensordaten liest und speichert die letzten Werte in AtomicVariables wie
AtomicFloat gyro_z,AtomicFloat gyro_y, ...
2.CommunicationThread: die Kommunikation mit dem PC, interpretiert Befehle, die die Buchse kommen bilden und den Zustand der App in Bezug gesetzt eines AtomicIntegers: AtomicInteger Zustand;
3.UIThread: Zeigt den aktuellen Sensorwerte von AtomicFloat gyro_z, AtomicFloat gyro_y,
4.ComputationThread: AtomicFloat gyro_z,AtomicFloat gyro_y, ...
verwendet Sensorwerte und Zustands AtomicInteger state
Berechnung auszuführen und die Befehle über USB zu senden.
Es klingt wie Sie könnten mit einem flüchtigen Schwimmer tun. – assylias
Bitte nehmen Sie sich einen Blick auf diesen Beitrag: http://stackoverflow.com/questions/5505460/java-is-there-no-atomicfloat-or-atomicdouble –
@Perroloco ich das las, aber die unteren zwei Antworten Ich sagte, dass man das wirklich selten benutzt. Es erschien mir sehr logisch, dass AtomicFloat existiert. das, warum ich meine Verwendung von ihnen in Frage gestellt –