Quali sono i pro e i contro dell'uso di questi modelli di Multithreading in un'architettura client / server

2

Nelle mie classi di programmazione parallela l'insegnante ha menzionato tre modelli, la creazione di thread dinamici (creare thread in base alla domanda), il pool di thread (creare una quantità fissa di thread) e misto o ibrido (creare un numero di thread all'inizio, ma puoi crearne di più se la domanda aumenta troppo e poi tornare alla quantità precedente di thread quando la domanda ritorna normale)

Vorrei che qualcuno potesse approfondire i vantaggi e gli svantaggi di ciascun modello in termini generali di prestazioni, quando è meglio usarne uno in specifico, ecc ...

    
posta OiciTrap 25.06.2016 - 22:54
fonte

1 risposta

2

Una rapida visione non accademica:

Modello dinamico:

  • Pro: utilizza solo il numero di thread necessari.
  • Contro: il sovraccarico della creazione e dell'eliminazione dei thread durante l'elaborazione. Considera anche il sovraccarico del cambio di thread, se il numero di thread dinamici aumenta oltre il limite supportato dall'hardware.
  • Caso di utilizzo tipico: gestione di processi / sessioni guidati da eventi (ad es. I / O), in cui i thread sono frequenti e le prestazioni della creazione del thread sono ridotte rispetto all'I / O (ad esempio, nuova connessione di rete in ingresso).

Pool di thread:

  • Pro: riduce al minimo il sovraccarico della gestione dei thread. Rendimento costante?
  • Contro: se la dimensione del pool è troppo grande (rispetto alla capacità dell'hardware o alle esigenze di elaborazione), potrebbe verificarsi un sovraccarico di commutazione non necessario per i thread non utilizzati.
  • Caso di utilizzo tipico: gestione dei processi di lavoro per l'input in coda. Altri qui

Modello misto:

  • può avere i vantaggi (o gli inconvenienti se non attento !!) di entrambi i modelli. Un possibile approccio consiste nel dimensionare un pool con una dimensione ottimale determinata dinamicamente al runtime per massimizzare le prestazioni in vista dell'hardware e delle esigenze di elaborazione.
  • Pro e amp; i contro di modelli ibridi non possono essere analizzati in generale: devono essere valutati caso per caso.
risposta data 25.06.2016 - 23:24
fonte

Leggi altre domande sui tag