Что было бы хорошим способом решить следующую проблему в Qt:
У меня есть класс датчиков, который непрерывно производит данные. По этим данным несколько операций должны выполняться за другим, что может занять довольно много времени. Для этого у меня есть несколько дополнительных классов. В принципе, каждый раз, когда записывается новый элемент данных, первый класс должен получать данные, обрабатывать их, передавать их в следующий и т.д.
sensor → class 1 → ... → last class
Я хочу поместить отдельные классы конвейера в свои собственные потоки, так что класс 1 уже может работать с образцом n + 1, когда класс 2 обрабатывает образец n...
Кроме того, поскольку отдельные этапы могут значительно отличаться по производительности (например, датчик быстрее, чем остальные), и мне не нужны устаревшие данные, я хочу, чтобы класс 1 (и все после него) всегда получал новейшие данные от их предшественника, отбрасывающие старые данные. Таким образом, нет большого буфера между этапами конвейера.
Сначала я подумал об использовании Qt:: QueuedConnections для сигналов/слотов, но я предполагаю, что это приведет к появлению очереди с устаревшими образцами, ожидающими обработки более медленными частями конвейера?