使用go 方法 开启轻量级线程

    1. package main
    2. import (
    3. "fmt"
    4. "time"
    5. )
    6. func say(s string) {
    7. for i := 0; i < 10; i++ {
    8. time.Sleep(100 * time.Microsecond)
    9. fmt.Println(s)
    10. }
    11. }
    12. func main() {
    13. go say("world")
    14. say("hello")
    15. }

    输出结果:
    两个子线程交替打印字符串

    也可以使用chanel来处理

    1. func main() {
    2. ch := make(chan bool)
    3. go func() {
    4. for i := 0; i < 3; i++ {
    5. time.Sleep(100 * time.Millisecond)
    6. fmt.Println("hello")
    7. }
    8. ch <- true
    9. }()
    10. <-ch
    11. fmt.Println("done")
    12. }