golang面接問題(10)協程交互印刷奇数偶数
質問:
2つのコプロセッサは、1〜100の奇数偶数を交互に印刷し、1つのコプロセッサは奇数を印刷し、1つのコプロセッサは偶数を印刷する.
コード1:
コード2:channelの使用
2つのコプロセッサは、1〜100の奇数偶数を交互に印刷し、1つのコプロセッサは奇数を印刷し、1つのコプロセッサは偶数を印刷する.
コード1:
package main
import (
"fmt"
"runtime"
"time"
)
func main() {
// CPU 1
runtime.GOMAXPROCS(1)
go func() {
for i := 1; i < 101; i++ {
//
if i%2 == 1 {
fmt.Println(" 1 :",i)
}
// cpu
runtime.Gosched()
}
}()
go func() {
for i := 1; i < 101; i++ {
//
if i%2 == 0 {
fmt.Println(" 2 :",i)
}
// cpu
runtime.Gosched()
}
}()
time.Sleep(3 * time.Second)
}
コード2:channelの使用
package main
import (
"fmt"
"time"
)
func main() {
c := make(chan int)
go func() {
for i := 1; i < 101; i++ {
c