Procese, fluxuri și priorități

Înainte de a începe să vorbiți despre multithreading, trebuie să clarificați câțiva termeni.

În mod obișnuit, în orice sistem de operare cu mai multe fire, sunt selectate obiecte precum procesele și firele. Între ele există o mare diferență, care ar trebui să fie clar imaginată.







Pentru fiecare proces, sistemul de operare creează un fir, care este firul comenzilor CPU care sunt executate la rândul lor. Dacă este necesar, firul principal poate crea alte fire folosind interfața software de sistem de operare pentru aceasta.

Prioritățile fluxurilor în aplicațiile Java

Dacă procesul a creat mai multe fire, atunci toate sunt executate în paralel și timpul procesorului central (sau mai mulți procesoare centrale în sistemele multiprocesor) este distribuit între aceste fluxuri.

Distribuirea timpului CPU este efectuată de un modul de sistem de operare special - programatorul. Planificatorul la rândul său transferă controlul asupra firelor individuale, astfel încât chiar și într-un sistem uniprocesor, se creează o iluzie completă a funcționării paralele a firelor care rulează.







Distribuirea timpului se realizează prin întreruperea temporizatorului de sistem. Prin urmare, fiecare fir este dat un anumit interval de timp, în timpul căruia este în stare activă.

Rețineți că distribuția timpului este efectuată pentru fire, nu pentru procese. Concentrările create de diferite procese concurează între ele pentru a obține timp CPU.

Cum exact?

Aplicațiile Java pot specifica trei valori pentru prioritățile firului. Aceasta este NORM_PRIORITY, MAX_PRIORITY și MIN_PRIORITY.

Implicit, firul nou creat are prioritatea normală NORM_PRIORITY. Dacă firele rămase din sistem au aceeași prioritate, atunci toate firele utilizează timpul procesorului pe drepturi egale.

Dacă este necesar, puteți mări sau micșora prioritatea fiecărui thread individual prin setarea unei valori de prioritate pentru acestea, respectiv MAX_PRIORITY sau MIN_PRIORITY. Fluxurile cu o prioritate mai mare sunt realizate mai întâi și cu o prioritate mai mică, numai în absența unor fire pregătite pentru a fi executate cu prioritate normală sau ridicată.







Articole similare

Trimiteți-le prietenilor: