goroutine not finished yet


In this example we told the first call to run 30 times, but it could only run 6 times before the main part of the code finished that killed the whole process. So we need to be able to wait till the go-routine finishes.

examples/goroutine-not-finished-yet/goroutine_not_finished_yet.go
package main

import (
    "fmt"
    "time"
)

func count(n int, name string) {
    for i := 0; i < n; i++ {
        fmt.Printf("%s %d\n", name, i)
        time.Sleep(1000)
    }
}

func main() {
    fmt.Println("Welcome")
    go count(30, "first")
    count(3, "second")
    count(3, "third")
    fmt.Println("Done")
}

examples/goroutine-not-finished-yet/goroutine_not_finished_yet.out
Welcome
second 0
second 1
first 0
second 2
first 1
third 0
first 2
first 3
third 1
first 4
third 2
first 5
Done