Ich schreibe ein C++ - Programm in Qt mit einem OnReceive (int value) -Ereignis. Es fängt und push_back ganzzahlige Werte in den std :: Vektor. Auf einem anderen Arbeitsthread habe ich Zugriff auf diesen Vektor und ich kann ein Semaphor setzen, um auf 20 Werte zu warten, und dann kann ich sie verarbeiten.Producer and Consumer Optimization
Ich möchte einige Optimierung tun.
Meine Frage ist, wie kann ich meinen Puffer oder Vektor in 3 Teile von 0-4, 5-10, 11-19 so zum Beispiel segmentieren, sobald 5 Werte im Vektor verfügbar sind (zB 0 bis 4) beginnt der zweite Arbeiter sie zu verarbeiten, während der erste Thread weiterhin die restlichen Werte erhält?
auf diese Weise möchte ich eine Überschneidung zwischen meinen Threads haben. Sie müssen also nicht seriell ausgeführt werden.
Vielen Dank.
Suchen Sie im Internet nach "double buffering". –