Junior — Middle
Jak można wyróżnić i uruchomić oddzielny proces w języku Go?
sobes.tech AI
Odpowiedź od AI
W języku Go do uruchomienia osobnego procesu (w rozumieniu systemu operacyjnego) używa się pakietu os/exec. Pozwala on na utworzenie i uruchomienie nowego procesu, na przykład wykonanie zewnętrznego polecenia lub programu.
Przykład uruchomienia polecenia ls -la:
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-la")
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("Błąd:", err)
return
}
fmt.Println(string(output))
}
Jeśli chodzi o równoległe wykonywanie kodu wewnątrz programu, w Go używa się goroutines (go func() { ... }()). Jednak goroutine nie jest osobnym procesem, lecz lekkim wątkiem w obrębie jednego procesu.
Dlatego, aby zarezerwować i uruchomić osobny proces, należy użyć os/exec.