Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "sync"
- "time"
- )
- func firstFunc(c1 chan string) {
- for {
- c1 <- "from 1"
- time.Sleep(time.Second * 2)
- }
- }
- func secondFunc(c2 chan string) {
- for {
- c2 <- "from 2"
- time.Sleep(time.Second * 3)
- }
- }
- func main() {
- c1 := make(chan string)
- c2 := make(chan string)
- wg := new(sync.WaitGroup)
- wg.Add(3)
- go firstFunc(c1)
- go secondFunc(c2)
- go func() {
- for {
- select {
- case msg1 := <-c1:
- fmt.Println(msg1)
- case msg2 := <-c2:
- fmt.Println(msg2)
- default:
- fmt.Println("Hello world")
- time.Sleep(time.Second * 3)
- }
- }
- }()
- wg.Wait()
- }
Add Comment
Please, Sign In to add comment