7
Tôi có một hàng đợi và một hàm có chức năng khử và khử nước. Tôi muốn chắc chắn rằng số tiền phải của goroutines hoạt động trên hàng đợi, miễn là có cái gì đó trong danh sách.đếm/hiển thị số lượng goroutines đang hoạt động
Đây là mã tôi đang sử dụng, nhưng tôi đã tự hỏi nếu có một cách in ấn số lượng goroutines hiện đang hoạt động
var element int
func deen(queue chan int) {
element := <-queue
fmt.Println("element is ", element)
if element%2 == 0 {
fmt.Println("new element is ", element)
queue <- (element*100 + 11)
queue <- (element*100 + 33)
}
}
func main() {
queue := make(chan int, 10)
queue <- 1
queue <- 2
queue <- 3
queue <- 0
for len(queue) != 0 {
for i := 0; i < 2; i++ {
go deen(queue)
}
}
fmt.Scanln()
fmt.Println("list is has len", len(queue)) //this must be 0
}
Cảm ơn nhưng không được WaitGroup chờ đợi một điều gì đó được thực hiện? Tôi thực sự muốn chắc chắn rằng họ không chết quá sớm vì một số lý do bên ngoài – meto
@meto Goroutines không "chết" như vậy, nếu một goroutine chết sau đó chương trình của bạn rất có thể bị rơi, tôi sẽ thêm một ví dụ. – OneOfOne
rất thú vị. Chỉ cần một câu hỏi tiếp theo nhanh chóng. Phần wg.Done có thể đã được đặt sau Println, nhưng chắc chắn trước nếu đúng, phải không? – meto