Junior — Middle
Πώς μπορούμε να διαχωρίσουμε και να ξεκινήσουμε μια ξεχωριστή διαδικασία στη γλώσσα Go;
sobes.tech AI
Απάντηση από AI
Στη Go, για την εκκίνηση μιας ξεχωριστής διαδικασίας (με την έννοια του λειτουργικού συστήματος), χρησιμοποιείται το πακέτο os/exec. Με αυτό, μπορείτε να δημιουργήσετε και να ξεκινήσετε μια νέα διαδικασία, π.χ., να εκτελέσετε μια εξωτερική εντολή ή πρόγραμμα.
Παράδειγμα εκτέλεσης της εντολής ls -la:
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-la")
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("Σφάλμα:", err)
return
}
fmt.Println(string(output))
}
Αν μιλάμε για παράλληλη εκτέλεση κώδικα μέσα στο πρόγραμμα, στη Go χρησιμοποιούνται οι goroutines (go func() { ... }()). Αλλά μια goroutine δεν είναι ξεχωριστή διαδικασία, είναι ένα ελαφρύ νήμα μέσα σε μια διαδικασία.
Επομένως, για την κράτηση και εκκίνηση μιας ξεχωριστής διαδικασίας, πρέπει να χρησιμοποιήσετε το os/exec.