golang 并发 面试
问题描述:
使用两个goroutine交替打印序列,一个goroutinue打印数字,另一个goroutine打印字母,最终结果如下: 12AB34CD45EF78GH910IJ
package main
import (
"fmt"
"sync"
)
func PrintNums(printChar chan int, wg *sync.WaitGroup) {
defer wg.Done()
for i := 0; i < 5; i {
for j := 0; j < 2; j {
fmt.Printf("%d", 2*i j 1)
}
printChar <- 1
<- printChar
}
}
func PrintChars(printChar chan int, wg *sync.WaitGroup) {
defer wg.Done()
for i := 0; i < 5; i {
<- printChar
for j := 0; j < 2; j {
fmt.Printf("%c", 'A' (2*i j))
}
printChar <- 1
}
}
func main() {
flag := make(chan int)
var wg sync.WaitGroup
wg.Add(2)
go PrintNums(flag, &wg)
go PrintChars(flag, &wg)
wg.Wait()
}
本文参考:https://www.yuque.com/docs/share/605393c7-af1e-4129-bdfc-5eda65dfa78b
到此这篇关于“golang 并发 面试”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!您可能感兴趣的文章:
golang基础教程
使用golang做http接口压力测试并输出到echarts散点图中
PHP7 Swoole/Nginx/Golang 数字货币交易所通信方式
Golang开发语言的效率
golang-对redis进行压力测试
一道并发和锁的golang面试题
go testing 包的介绍和使用
数据结构和算法(Golang实现)(1)简单入门Golang-前言
golang 并发 面试
Go语言开发者必须了解的七个Golang功能