Diciamo che c'è una serie di stringhe, che devo elaborare. Sto usando un oggetto di terza parte «pesante» che ottiene la stringa ed esegue la sua analisi. Per ottimizzare una performance, creo un numero di thread (in base a un numero di core della CPU), separo la matrice al numero di sotto-array e ogni thread esegue la logica descritta sopra con la sua porzione di stringhe.
Ho due opzioni:
- Per eseguire i thread e all'interno di ciascun thread, inizializzare questo oggetto «pesante» di terza parte e passare le stringhe. Ciò significa che inizializzo l'oggetto «pesante» in base a un numero di thread.
- Per inizializzare una volta questo oggetto «pesante» e passare il riferimento a questo oggetto a ciascun thread.
L'approccio n. 2 mi sembra più corretto, quindi risparmia un'inizializzazione di oggetto «pesante» supplementare.
La mia domanda:
Ci sono insidie o mancanze di progettazione con l'implementazione dell'approccio n. 2?