Informatică Sisteme de operare
Ce este un thread in programare concurenta?
Un thread (fir de execuție) este cea mai mică unitate de procesare într-un program, care poate fi planificată independent de sistemul de operare. În programarea concurentă, un proces poate avea mai multe thread-uri care rulează paralel, partajând aceleași resurse (ex: memorie) dar cu stări separate (ex: contor de instrucțiuni). Acest lucru permite împărțirea sarcinilor pentru a utiliza mai eficient resursele hardware, cum ar nucleele unui procesor multi-core.
Caracteristici ale thread-urilor
- Partajare resurse Thread-urile din același proces partajează spațiul de memorie și fișiere deschise, comunicând ușor între ele.
- Execuție independentă Fiecare thread are propriul registru și stivă, putând rula instrucțiuni diferite simultan.
- Planificare Sistemul de operare alocă timp CPU fiecărui thread, alternând rapid între ele pentru iluzia de paralelism.
Exemplu practic
- 1 Aplicație cu thread-uri Un browser web: un thread afișează interfața, altul descarcă imagini, iar un al treilea rulează JavaScript, toate simultan.
- 2 Cod simplu În Python, cu modulul threading: thread1 = Thread(target=func1) creează un thread care rulează func1.
- 3 Beneficii Thread-urile pot îmbunătăți timpul de răspuns al aplicațiilor; ex: un calculator de numere prime poate împărți intervalul între thread-uri.
Folosește thread-uri pentru sarcini I/O-intensive (ex: citire fișiere) sau pentru a paraleliza calcule, dar fii atent la condițiile de cursă și sincronizare.