Tôi đang làm việc trên một hệ thống Java chuẩn với các yêu cầu thời gian quan trọng cho các nhà sản xuất của tôi (1/100s ms).Hàng đợi chặn Java nào hiệu quả nhất cho các kịch bản một người tiêu dùng sản xuất đơn
Tôi có một nhà sản xuất đặt nội dung trong hàng đợi chặn và một người tiêu dùng duy nhất sau đó chọn công cụ đó và bán nó vào một tệp. Khối người tiêu dùng khi dữ liệu không có sẵn.
Rõ ràng, hàng đợi chặn là giao diện thích hợp, nhưng nên triển khai thực hiện thực tế nào nếu tôi muốn giảm thiểu chi phí cho nhà sản xuất? Tôi muốn chơi càng ít càng tốt vào những thứ như khóa và phân bổ khi tôi đặt hàng trong hàng đợi, và tôi không ngại nếu người tiêu dùng phải đợi lâu hơn hoặc làm việc chăm chỉ hơn nhiều.
Có triển khai nào có thể nhanh hơn vì tôi chỉ có một người tiêu dùng và một nhà sản xuất duy nhất không?
Bạn có cân nhắc mua JVM theo thời gian thực không? Nó có các phần mở rộng đặc biệt giúp đạt được các khung thời gian quan trọng như vậy. http://java.sun.com/javase/technologies/realtime/index.jsp –
@Rastislv: Tôi đồng ý rằng RT JVM sẽ tốt hơn. Tuy nhiên, đây là một hệ thống hiện có và hầu hết các máy khách đều sử dụng các JVM chuẩn; Tôi cần phải làm điểm chuẩn với tác động tối thiểu và tôi đang đo các phần mất 1/100 ms – Uri
Cân nhắc sử dụng [LMAX disruptor] (https://lmax-exchange.github.io/disruptor/) thay vì một hàng đợi thông thường. –