一个线程打印奇数一个线程打印偶数 交替打印

本文阅读 1 分钟
首页 golang 正文

题目序号:(1105)

题目来源:字节跳动

频次: 1

答案:(Zbbxd)

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)
}
本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论