Ho scritto un programma multi-thread che genera casualmente stringhe e, dopo la generazione, controlla se la stringa contiene un determinato valore. Vale a dire, StringGenerator
e StringChecker
. Quello che sto cercando di capire è quanti thread StringGenerator
mi servirebbero per mantenere StringChecker
occupato.
Tutti i StringGenerator
thread hanno un riferimento a un Queue
che contiene tutte le stringhe necessarie per essere controllato e quando generano una stringa, viene aggiunto a Queue
. Tutti i thread StringChecker
hanno anche un riferimento allo stesso Queue
e lo interrogano per ottenere la stringa successiva e controlla se contiene la parola chiave.
Dato che la generazione delle stringhe richiede più tempo rispetto al loro controllo, quello che voglio sapere è se ci sono equazioni, algoritmi o analisi che possono essere fatti sul codice che possono aiutarmi a dirmi approssimativamente quanti fili di ciascun io avrò bisogno in modo tale che la somma di tutte le stringhe generate da StringGenerator
s sia il più vicino possibile al numero di stringhe controllate da StringChecker
s.