其他分享
首页 > 其他分享> > golang 协程 交替输出

golang 协程 交替输出

作者:互联网

一般面试喜欢考试这个
chan
ch := make(chan int)
	go func() {
		for i := 0; i < 10; i++ {
			ch <- 1
			if i%2 == 1 {
				fmt.Println("A:", i)
			}
		}
	}()

	go func() {
		for i := 0; i < 10; i++ {
			<-ch
			if i%2 == 0 {
				fmt.Println("B:", i)
			}
		}
	}()
	time.Sleep(2 * time.Second)
让出调度
runtime.GOMAXPROCS(1)
	go func() {
		for i := 0; i < 10; i++ {
			if i%2 == 1 {
				fmt.Println("A:", i)
			}
			runtime.Gosched()
		}
	}()

	go func() {
		for i := 0; i < 10; i++ {
			if i%2 == 0 {
				fmt.Println("B:", i)
			}
			runtime.Gosched()
		}
	}()
	time.Sleep(2 * time.Second)

标签:10,协程,++,chan,golang,交替,func,go,runtime
来源: https://www.cnblogs.com/guanchaoguo/p/16184842.html