timer_goroutine.go 439 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // default.go
  2. package main
  3. import (
  4. "fmt"
  5. "time"
  6. )
  7. func main() {
  8. tick := time.Tick(1e8)
  9. boom := time.After(5e8)
  10. for {
  11. select {
  12. case <-tick:
  13. fmt.Println("tick.")
  14. case <-boom:
  15. fmt.Println("BOOM!")
  16. return
  17. default:
  18. fmt.Println(" .")
  19. time.Sleep(5e7)
  20. }
  21. }
  22. }
  23. /* Output:
  24. .
  25. .
  26. tick.
  27. .
  28. .
  29. tick.
  30. .
  31. .
  32. tick.
  33. .
  34. .
  35. tick.
  36. .
  37. .
  38. tick.
  39. BOOM!
  40. */