Go में सभी goroutines के पूरा होने की प्रतीक्षा कैसे करें बिना time.Sleep के?
सभी को नमस्ते! मैंने 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