Terminologia - Differenza tra thread e processo e modalità con cui gestiscono le connessioni DB

1

Recentemente ho lavorato di più con la concorrenza in Ruby e continuo a vedere vari articoli che utilizzano "thread" e "processi" in modo intercambiabile.

Quali sono le definizioni effettive di questi termini? È un processo composto da più thread?

Diciamo che uso Unicorn / Puma / etc .. come server web.

Sto capendo correttamente quanto segue?

  1. Ogni Unicorn (o qualsiasi altra cosa) worker è il suo processo. Ha una lista individuale nella lista dei processi di Linux ( ps aux ).

  2. Ogni lavoratore ha più thread . Questi thread condividono la memoria e altri contesti perché è tutto in un unico processo, ma simulano il processo facendo più cose contemporaneamente.

  3. Ogni thread ha (al massimo) una connessione a un Database che utilizza per interrogare o scrivere dati. Controlla questa connessione da un pool di connessioni, che è una raccolta di connessioni disponibili per l'uso

  4. Ogni pool di connessioni si applica a un processo . Quindi, se il mio processore di background in background (ad esempio Resque, Delayed Job, ecc.) Ha una concomitanza di "25" significa che ogni processo di lavoro ottiene fino a 25 connessioni da distribuire tra i suoi thread.

posta user2490003 01.10.2015 - 23:19
fonte

0 risposte

Leggi altre domande sui tag