यह गोलांग कोड एकाधिक समय के बीच क्यों चयन नहीं करता है। चैनलों के बाद काम करते हैं?यह गोलांग कोड एकाधिक समय के बीच क्यों चयन नहीं करता है। चैनलों के बाद काम करते हैं?
नीचे कोड देखें। 'टाइमआउट' संदेश कभी जारी नहीं किया जाता है। क्यूं कर?
package main
import (
"fmt"
"time"
)
func main() {
count := 0
for {
select {
case <-time.After(1 * time.Second):
count++
fmt.Printf("tick %d\n", count)
if count >= 5 {
fmt.Printf("ugh\n")
return
}
case <-time.After(3 * time.Second):
fmt.Printf("timeout\n")
return
}
}
}
भागो यह खेल का मैदान पर: http://play.golang.org/p/1gku-CWVAh
आउटपुट:
tick 1
tick 2
tick 3
tick 4
tick 5
ugh
संभावित डुप्लिकेट [golang समय समाप्ति चैनलों के साथ निष्पादित नहीं किया गया है] (http://stackoverflow.com/questions/34894927/golang-timeouts-is-not-executed-with-channels) – icza