Što je Multithreading?

U svijetu računalstva, multithreading je zadatak stvaranja nove niti izvršenja unutar postojećeg procesa umjesto pokretanja novog procesa za pokretanje funkcije. U osnovi, zadatak višenitnog rada ima za cilj mudrije korištenje računalnih resursa dopuštajući da se resursi koji su već u upotrebi istovremeno koriste u maloj varijanti istog procesa. Osnovni koncept multithreadinga postoji već neko vrijeme, ali je dobio širu pozornost kako su računala postala uobičajena tijekom desetljeća 1990-ih.

Ovaj oblik multipleksiranja s vremenskom podjelom stvara okruženje u kojem je program konfiguriran da omogući procesima da se račvaju ili podijele u dvije ili više niti izvršenja. Paralelno izvođenje niti unutar istog programa često se promiče kao učinkovitije korištenje resursa računalnog sustava, posebno kod stolnih i prijenosnih sustava. Dopuštajući programu da obrađuje više zadataka s višenitnim modelom, sustav ne mora dopustiti da dva odvojena programa pokrenu dva odvojena procesa i moraju istovremeno koristiti iste datoteke.

Iako postoje mnogi zagovornici višenitnosti, postoje i oni koji taj proces shvaćaju kao potencijalno štetan za zadatak računanja. Neki smatraju da vremenski razdjeljak koji je svojstven dopuštanju razdvajanja vilice ili niti od pokrenutog procesa stvara okolnosti u kojima može doći do sukoba između niti prilikom pokušaja dijeljenja predmemorije ili drugih hardverskih resursa. Također postoji određena zabrinutost da bi djelovanje višenitnosti moglo smanjiti vrijeme odziva svake pojedinačne niti u procesu, učinkovito negirajući bilo kakvu uštedu vremena koju generira konfiguracija.

Međutim, multithreading ostaje jedna od održivih opcija u računalnom multitaskingu. Nije neobično da procesor dopušta i višenitnost kao i stvaranje novih procesa za rukovanje raznim zadacima. To omogućuje krajnjem korisniku sve prednosti promjene konteksta, a da pritom na najbolji način koristi dostupne resurse.