Junior — Middle
Објасните концепт конкуренције у програмском језику Go и његову улогу у развоју паралелних апликација
sobes.tech АИ
Одговор од АИ
U jeziku Go, konkurencija (concurrency) je sposobnost programa da izvršava više zadataka istovremeno, efikasno koristeći resurse procesora. U jeziku Go, to se postiže pomoću gorutina, koje su lake niti pokrenute ključnom reči go.
Konkurencija omogućava pisanje paralelnih aplikacija, gde se različiti delovi koda izvršavaju istovremeno, što povećava performanse i odzivnost programa.
Za sinhronizaciju i razmenu podataka između gorutina koriste se kanali (channels), koji obezbeđuju sigurnu komunikaciju bez eksplicitnih blokada.
Primer:
package main
import (
"fmt"
"time"
)
func worker(id int) {
fmt.Printf("Radnik %d počinje\n", id)
time.Sleep(time.Second)
fmt.Printf("Radnik %d završava\n", id)
}
func main() {
for i := 1; i <= 3; i++ {
go worker(i) // pokretanje gorutine
}
time.Sleep(2 * time.Second) // čekanje na završetak gorutina
}
Ovaj primer prikazuje tri gorutina koje rade istovremeno, demonstrirajući konkurenciju u Go-u.