用Go实现两个线程交替打印奇数和偶数

package main

import(
	"fmt"
	"sync"
	// "test"
)


// 1.用waitgroup等待两个goroutine的完成
// 2.用channel来实现同步

func main(){
	var wg sync.WaitGroup
	wg.Add(2)
	ch:=make(chan struct{})
	go func(){
		defer wg.Done()
		for i:=1;i<101;i++{
			ch<-struct{}{}
			if i%2==1{
				fmt.Println("线程1打印:",i)
			}

		}
	}()
	go func(){
		defer wg.Done()
		for i:=1;i<101;i++{
			<-ch
			if i%2==0{
				fmt.Println("线程2打印:",i)
			}

		}
	}()
	wg.Wait()
	// testFunc()
}

你可能感兴趣的:(golang,开发语言,后端)