go小题单

Go 并发面试题单


12.1 开启 100 个协程,顺序打印 1-1000,且保证协程号 1 的打印尾数为 1 的数字

题目要求

  • 启动 100 个 goroutine
  • 按顺序打印 1-1000
  • 编号为 1 的 goroutine 只打印尾数为 1 的数字(如 1, 11, 21...)

12.2 三个 goroutine 交替打印 abc 10 次

题目要求

  • 启动 3 个 goroutine
  • 分别打印 a、b、c
  • 按顺序交替输出:a b c a b c ... 共 10 轮

12.3 用不超过 10 个 goroutine 不重复的打印 slice 中的 100 个元素

题目要求

  • slice 有 100 个元素
  • 最多使用 10 个 goroutine
  • 每个元素只打印一次,不能重复
  • 所有元素都要被打印

12.4 两个协程交替打印奇偶数

题目要求

  • 两个 goroutine
  • 一个打印奇数,一个打印偶数
  • 按顺序输出:1 2 3 4 5 6 ...

12.5 用单个 channel 实现 0,1 的交替打印

题目要求

  • 只使用 1 个 channel
  • 交替打印 0 和 1
  • 输出:0 1 0 1 0 1 ...

12.6 sync.Cond 实现多生产者多消费者

题目要求

  • 使用 sync.Cond
  • 实现多个生产者、多个消费者
  • 生产者生产数据,消费者消费数据
  • 正确处理等待和唤醒

12.7 使用 go 实现 1000 个并发控制并设置执行超时时间 1 秒

题目要求

  • 启动 1000 个并发任务
  • 控制并发数量
  • 设置整体超时时间为 1 秒
  • 超时后未完成的任务应该被取消

12.8 使用两个 Goroutine,向标准输出中按顺序交替打出字母与数字,输出是 a1b2c3

题目要求

  • 两个 goroutine
  • 一个打印字母 a b c d ...,一个打印数字 1 2 3 4 ...
  • 交替输出:a 1 b 2 c 3 ...

12.9 编写一个程序限制 10 个 goroutine 执行,每执行完一个 goroutine 就放一个新的 goroutine 进来

题目要求

  • 同时最多 10 个 goroutine 在运行
  • 完成一个,补充一个新任务
  • 持续运行直到所有任务完成

题单速查表

题号 核心考点 难度
12.1 协程间协调 + 条件控制 ⭐⭐⭐
12.2 多协程交替执行 ⭐⭐⭐
12.3 工作池模式 + 任务分配 ⭐⭐
12.4 双协程同步 ⭐⭐
12.5 Channel 控制技巧 ⭐⭐
12.6 sync.Cond 条件变量 ⭐⭐⭐⭐
12.7 并发控制 + 超时控制 ⭐⭐⭐⭐
12.8 双协程交替输出 ⭐⭐
12.9 动态工作池 ⭐⭐⭐
posted @ 2026-04-01 11:02  cyusouyiku  阅读(3)  评论(0)    收藏  举报