Tôi muốn tạo ứng dụng Android đa luồng. Vấn đề của tôi là giao tiếp giữa các chủ đề. Tôi đọc về giao tiếp giữa các chủ đề và tôi bắt gặp các công cụ như thiết kế Looper/Handler, có vẻ khá liên quan và các Biến Nguyên tử như AtomicInteger. Hiện tại, tôi đã sử dụng AtomicInteger làm giao tiếp nhưng vì tôi không có nhiều kinh nghiệm về Java, tôi không chắc liệu đó có phải là điều xấu trong trường hợp của tôi không/nếu có giải pháp tốt hơn cho mục đích cụ thể của tôi. Ngoài ra tôi có một chút nghi ngờ về phương pháp của mình, khi tôi nhận thấy tôi cần một cái gì đó giống như AtomicFloat, nhưng nó không tồn tại. Tôi cảm thấy như tôi đang bỏ lỡ khái niệm này. Tôi cũng thấy rằng bạn có thể làm cho mình một AtomicFloat, nhưng tôi chỉ không chắc chắn nếu tôi đang đi đúng hướng hoặc nếu có một kỹ thuật tốt hơn.
Câu hỏi: Sử dụng AtomicFloat cho mục đích cụ thể của tôi cũng tốt hay không (được mô tả bên dưới) hoặc có cách xử lý giao tiếp tốt hơn không?
Mục đích/Kiến trúc của App sử dụng AtomicVariables cho đến nay:
Tôi có 4 chủ đề với mục đích sau:
1.SensorThread: Đọc dữ liệu cảm biến và lưu giá trị mới nhất trong AtomicVariables như
AtomicFloat gyro_z,AtomicFloat gyro_y, ...
2.Thông báoThay đổi: Tạo thành ổ cắm và đặt trạng thái của ứng dụng theo thuật ngữ của một AtomicInteger: Trạng thái AtomicInteger;
3.UIThread: Hiển thị các giá trị cảm biến hiện tại từ AtomicFloat gyro_z, AtomicFloat gyro_y,
4.ComputationThread: sử dụng cảm biến giá trị AtomicFloat gyro_z,AtomicFloat gyro_y, ...
và tiểu bang AtomicInteger state
để thực hiện tính toán và gửi lệnh qua USB.
Có vẻ như bạn có thể làm gì với phao dễ bay hơi. – assylias
Xin hãy nhìn vào bài đăng này: http://stackoverflow.com/questions/5505460/java-is-there-no-atomicfloat-or-atomicdouble –
@Perroloco Tôi đọc mà, nhưng thấp hơn hai trả lời đã nói rằng người ta sử dụng nó rất hiếm. Đối với tôi nó có vẻ rất hợp lý mà AtomicFloat nên tồn tại. rằng tại sao tôi đặt câu hỏi về việc sử dụng chúng –