Cuprins:
Definiție - Ce înseamnă Multithreading?
Multithreading este un tip de model de execuție care permite existența mai multor fire în contextul unui proces, astfel încât acestea să se execute independent, dar să partajeze resursele procesului lor. Un thread păstrează o listă de informații relevante pentru execuția sa, inclusiv programul de prioritate, gestionarea excepțiilor, un set de registre CPU și starea stivă în spațiul de adrese al procesului său de găzduire.
Multitreading este cunoscut și sub denumirea de filetare.
Techopedia explică Multithreading
Filetarea poate fi utilă într-un sistem cu un singur procesor, permițând firului de execuție principal să răspundă la intrarea utilizatorului, în timp ce thread-ul suplimentar al lucrătorului poate executa activități de lungă durată care nu au nevoie de intervenția utilizatorului în fundal. Filetarea într-un sistem multiprocesor duce la executarea reală simultană a thread-urilor pe mai multe procesoare și, prin urmare, este mai rapidă. Cu toate acestea, necesită o programare mai atentă pentru a evita comportamentul non-intuitiv, cum ar fi condițiile de curse, blocajele etc.
Sistemele de operare utilizează filetarea în două moduri:
- Multithreading preventiv, în care comutatorul de context este controlat de sistemul de operare. Comutarea contextului s-ar putea efectua la un moment necorespunzător, prin urmare, un fir prioritar ridicat ar putea fi prefăcut indirect printr-un fir cu prioritate scăzută.
- Multithreading cooperativ, în care comutarea contextului este controlată de fir. Acest lucru ar putea duce la probleme, cum ar fi blocaje, în cazul în care un thread este blocat în așteptarea ca o resursă să devină liberă.
Versiunile pe 32 și 64 de biți ale Windows folosesc multitreading preventiv în care timpul de procesare disponibil este partajat astfel încât toate firele să obțină o porție de timp egală și să fie deservite într-un mod bazat pe coadă. În timpul comutării firului, contextul unui fir pre-golit este stocat și reîncărcat în firul următor din coadă. Perioada de timp este atât de scurtă încât firele care rulează par să se execute în paralel.
Această definiție a fost scrisă în contextul arhitecturii computerului