Junior
Šta je proces i nit? Čime se razlikuju?
sobes.tech АИ
Одговор од АИ
Proces je pokrenut program koji poseduje svoj sopstveni adresni prostor, resurse (deskriptore fajlova, mrežne konekcije) i kontekst izvršenja.
Nit (thread) je najmanja jedinica izvršenja unutar procesa. Jedan proces može sadržavati jednu ili više niti, koje dele njegove resurse, ali imaju sopstveni stek poziva, kontekst izvršenja i brojač instrukcija.
Glavne razlike:
| Karakteristika | Proces | Nit (thread) |
|---|---|---|
| Izolacija | Potpuna. Jedan proces ne utiče na drugog. | Delimična. Niti dele resurse procesa. |
| Razmena podataka | Preko IPC (međuprocesne komunikacije). | Laka. Preko zajedničkih promenljivih unutar procesa. |
| Prebacivanje konteksta | Skupo. Zahteva čuvanje i obnavljanje celog stanja procesa. | Jeftinije. Zahteva čuvanje i obnavljanje stanja niti. |
| Kreiranje | Skupo. Zahteva alokaciju resursa. | Jeftinije. Zahteva alokaciju steka. |
| Završetak | Završetak procesa završava sve njegove niti. | Završetak niti ne utiče na druge niti ili proces. |
Primer kreiranja procesa (spoljašnja komanda) u Javi:
// Java
Process process = Runtime.getRuntime().exec("ls -l");
// Rad sa procesom: dobijanje ulaza/izlaza i dr.
Primer kreiranja niti u Javi:
// Java
Runnable task = () -> {
System.out.println("Zdravo iz niti: " + Thread.currentThread().getName());
};
Thread thread = new Thread(task);
thread.start(); // Pokretanje niti