quello che sarebbe un buon modo per risolvere il seguente problema in Qt:dati multithread pipeline di elaborazione in Qt
Ho una classe sensore, che produce continuamente i dati. Su questi dati, devono essere eseguite diverse operazioni dopo l'altra, il che può richiedere parecchio tempo. Per questo ho alcune classi aggiuntive. Fondamentalmente, ogni volta che viene registrato un nuovo elemento di dati, la prima classe dovrebbe ottenere i dati, elaborarli, passarli al successivo e così via.
sensore -> classe 1 -> ... -> ultima classe
voglio mettere le singole classi del gasdotto nelle loro discussioni, in modo che la classe 1 può già lavorare sul campione n +1 quando la classe 2 sta elaborando il campione n ...
Inoltre, poiché i singoli passaggi possono differire notevolmente nelle loro prestazioni (ad esempio il sensore è molto più veloce degli altri) e non sono interessato a dati obsoleti, I vuoi che la classe 1 (e tutto il resto) per ottenere sempre i dati più recenti dal loro predecessore, scartando i vecchi dati. Quindi, nessun grande buffer tra i passaggi della pipeline.
Prima ho pensato di utilizzare Qt :: QueuedConnections per segnali/slot, ma suppongo che questo introdurrebbe una coda piena di campioni obsoleti in attesa di essere elaborati dalle parti più lente della pipeline?