编程开发-Go-高级
编程开发-Go-高级
1. 以下哪种情况**不会触发栈扩容**(单选题)
A. 深层递归调用
B. 函数内定义超大数组
C. 普通单层函数调用
D. 大量局部变量嵌套
2. 逃逸分析命令`go build -gcflags=”-m”`中,-m代表(单选题)
A. 打印逃逸分析信息
B. 开启编译优化
C. 精简编译日志
D. 强制堆分配
3. GMP模型里,M绑定P后才能执行G,原因是(单选题)
A. P持有运行时调度资源与本地队列
B. M没有独立执行权限
C. G只能依附P存在
D. 操作系统限制
4. 协程主动调用runtime.Gosched()作用是(单选题)
A. 主动让出CPU,重回就绪队列
B. 直接休眠阻塞
C. 销毁当前协程
D. 绑定指定P执行
5. 工作窃取调度优先窃取(单选题)
A. 其他P尾部协程
B. 全局队列头部协程
C. 阻塞队列协程
D. 休眠协程
6. 无缓冲通道实现生产者消费者模型,特点是(单选题)
A. 一对一同步配对执行
B. 异步缓存消息
C. 可堆积大量数据
D. 无需互相等待
7. 定义只读通道正确语法(单选题)
A. `func f(ch <-chan int)`
B. `func f(ch chan<- int)`
C. `func f(ch chan int)`
D. `func f(ch <chan int)`
8. 多个case同时就绪,select执行规则(单选题)
A. 随机公平选取一个执行
B. 从上到下依次执行
C. 优先读取通道
D. 优先写入通道
9. 忘记关闭time.Ticker会导致(单选题)
A. 协程泄漏,持续占用资源
B. 自动被GC回收
C. 程序直接panic
D. 定时失效
10. WaitGroup计数器小于0直接触发(单选题)
A. panic
B. 自动置0
C. 静默忽略
D. 重新累加