一个线程打印奇数一个线程打印偶数 交替打印
题目来源:字节跳动
答案:
package main
import (
"fmt"
"time"
)
var num = 100
func goroutine1(p chan int) {
for i := 1; i <= num; i++ {
p <- i
if i%2 == 1 {
fmt.Println("goroutine-1:", i)
}
}
}
func goroutine2(p chan int) {
for i := 1; i <= num; i++ {
<-p
if i%2 == 0 {
fmt.Println("goroutine-2:", i)
}
}
}
func main() {
msg := make(chan int)
go goroutine1(msg)
go goroutine2(msg)
time.Sleep(time.Second * 1)
}