Sobes.tech
Junior — Middle

Este posibil să creați un nou proces prin mecanismul de fork în limbajul Go?

sobes.tech AI

Răspuns de la AI

În limbajul Go, nu există un mecanism încorporat de fork, așa cum există în sistemele de tip Unix la nivelul apelurilor de sistem. Go se concentrează pe utilizarea goroutine-urilor pentru execuție concurentă și oferă pachetul os/exec pentru lansarea de procese noi.

Dacă trebuie să creezi un proces nou, de obicei se folosește exec.Command pentru a porni un program extern, în loc să faci un fork al procesului curent.

Exemplu de lansare a unui proces nou:

cmd := exec.Command("ls", "-la")
output, err := cmd.Output()
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(output))

Astfel, operația de fork ca în C sau în API-ul Unix nu se aplică direct în Go; în schimb, se lansează procese noi prin exec sau se folosește concurența cu goroutine-uri.