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.