Die user-time ist immer deutlich höher als die real-time. Das heißt, dass die Threads nicht nebenläufig, sondern parallel laufen.
Die Option timings variiert stark von den Ergebnissen von time. Das unix-Kommando time bezieht die Ausführungszeit des gesamten Codes mt ein.
Also auch Aufrufe von sys-info oder zum Beispiel das Parsen der Argumente, welches clap durchführt.
Mit -s und -v:
Sum Loops in Producers: 66106870
Sum Duration in Producers: 25s / 25160ms / 25160747us
Ohne -s und -v:
Wartet der Consumer bis jeder Thread eine Solution gefunden hat. Dies ist sehr deutlich an den Loop-anzahl und der Zeit erkennbar.
Sum Loops in Producers: 147581082
Sum Duration in Producers: 37s / 37244ms / 37244327us
Man könnte anstatt dem Arc und dem AtomicBool im Consumer aktiv alle Threads töten, sobald eine Lösung gefunden wurde.