Avatar ·

Go में बिना time.Sleep के सभी goroutines के पूरा होने का इंतज़ार कैसे करें?

सभी को नमस्ते! मैंने Go सीखना शुरू किया है और goroutines के सिंक्रोनाइज़ेशन की समस्या का सामना किया। मैं एक सरल प्रोग्राम लिख रहा हूँ जो डेटा को समानांतर रूप से प्रोसेस करने के लिए कई goroutines चलाता है, लेकिन मुख्य फ़ंक्शन को उनके पूरा होने का इंतज़ार नहीं करवा पा रहा हूँ। यहाँ मेरा कोड है: ```go package main import ( "fmt" "time" ) func worker(id int) { fmt.Printf("Worker %d started\n", id) time.Sleep(2 * time.Second) // काम का अनुकरण fmt.Printf("Worker %d finished\n", id) } func main() { for i := 1; i <= 5; i++ { go worker(i) } // प्रोग्राम goroutines का इंतज़ार किए बिना तुरंत समाप्त हो जाता है fmt.Println("Main function ended") } ``` समस्या यह है कि प्रोग्राम goroutines के निष्पादन का इंतज़ार किए बिना तुरंत समाप्त हो जाता है। मुझे पता है कि `time.Sl