偶数"/>
golang 面试题(十)协程交替打印奇偶数
问题:
两个协程交替打印1-100的奇偶数,一个协程打印奇数,一个协程打印偶数。
代码1:
package mainimport ("fmt""runtime""time"
)func main() {//设置可同时使用的CPU核数为1runtime.GOMAXPROCS(1)go func() {for i := 1; i < 101; i++ {//奇数if i%2 == 1 {fmt.Println("线程1打印:",i)}//让出cpuruntime.Gosched()}}()go func() {for i := 1; i < 101; i++ {//偶数if i%2 == 0 {fmt.Println("线程2打印:",i)}//让出cpuruntime.Gosched()}}()time.Sleep(3 * time.Second)
}
代码2:使用channel
package mainimport ("fmt""time"
)func main() {c := make(chan int)go func() {for i := 1; i < 101; i++ {c <- 1//奇数if i%2 == 1 {fmt.Println("线程1打印:",i)}}}()go func() {for i := 1; i < 101; i++ {<- c//偶数if i%2 == 0 {fmt.Println("线程2打印:",i)}}}()time.Sleep(3 * time.Second)
}
更多推荐
golang 面试题(十)协程交替打印奇偶数
发布评论