Ce este Multithreading?

În lumea computerelor, multithreading-ul este sarcina de a crea un nou fir de execuție în cadrul unui proces existent, mai degrabă decât de a începe un nou proces pentru a începe o funcție. În esență, sarcina de multithreading este menită să facă o utilizare mai înțeleaptă a resurselor computerului, permițând resurselor care sunt deja în uz să fie utilizate simultan de o mică variantă a aceluiași proces. Conceptul de bază de multithreading există de ceva timp, dar a câștigat o atenție mai largă pe măsură ce computerele au devenit mai comune în deceniul anilor 1990.

Această formă de multiplexare cu diviziune în timp creează un mediu în care un program este configurat pentru a permite proceselor să se bifurcă sau să se împartă în două sau mai multe fire de execuție. Execuția paralelă a firelor de execuție în cadrul aceluiași program este adesea prezentată ca o utilizare mai eficientă a resurselor sistemului informatic, în special cu sistemele desktop și laptop. Permițând unui program să gestioneze mai multe sarcini cu un model multithreading, sistemul nu trebuie să permită ca două programe separate să inițieze două procese separate și să folosească aceleași fișiere în același timp.

Deși există mulți susținători ai multithreading-ului, există și cei care înțeleg procesul ca fiind potențial dăunător sarcinii de calcul. Diviziunea de timp care este inerentă în a permite unei furcături sau un fir să se despartă de un proces care rulează este considerată de unii că creează circumstanțe în care ar putea exista un conflict între fire atunci când încearcă să partajeze cache-urile sau alte resurse hardware. Există, de asemenea, o anumită îngrijorare că acțiunea multithreading ar putea reduce timpul de răspuns al fiecărui fir unic din proces, anulând efectiv orice economie de timp generată de configurație.

Cu toate acestea, multithreading-ul rămâne una dintre opțiunile viabile în multitasking pe computer. Nu este neobișnuit ca un procesor să permită atât multithreading, cât și crearea de noi procese pentru a gestiona diverse sarcini. Acest lucru permite utilizatorului final toate beneficiile comutării contextului, utilizând în același timp cea mai bună utilizare a resurselor disponibile.