编程开发-Go-中级
编程开发-Go-中级
1. 以下关于**栈扩容**说法正确的是(单选题)
A. Go协程栈固定2MB无法扩容
B. 采用动态栈,初始小栈,不足自动扩容
C. 线程栈比协程栈更灵活
D. 栈扩容不会发生数据拷贝
2. Go 1.17 之后函数调用传参机制主要变为(单选题)
A. 全部栈传参
B. 寄存器传参为主,栈为辅
C. 统一堆上分配
D. 指针传递优先
3. 发生**栈分裂**最典型场景是(单选题)
A. 普通循环调用
B. 递归深度过大栈空间不足
C. 大量全局变量
D. 通道频繁收发
4. 逃逸分析中,**闭包引用局部变量**最终分配在(单选题)
A. 栈
B. 堆
C. 数据段
D. 常量区
5. 下列**不会引发变量逃逸**的是(单选题)
A. 函数返回局部变量值
B. 函数返回局部变量指针
C. 局部变量放入接口返回
D. 局部变量存入全局切片
6. GMP调度中,**抢占式调度**触发时机不包含(单选题)
A. 协程运行满10ms
B. 函数调用入口检查
C. IO阻塞主动让出
D. 代码空循环无限占用
7. 调度中**M和P解绑**的主要原因是(单选题)
A. G陷入系统调用阻塞
B. 协程数量过少
C. 内存不足
D. GC暂停
8. 全局运行队列与P本地队列优先调度顺序(单选题)
A. 优先本地队列,再取全局
B. 优先全局队列
C. 随机调度
D. 按创建顺序
9. 通道`make(chan int, 10)`缓冲区已满,发送协程状态为(单选题)
A. 运行态
B. 就绪态
C. 阻塞态
D. 消亡态
10. 无缓冲通道实现**同步通信**本质是(单选题)
A. 发送接收互相唤醒配对
B. 缓冲区中转
C. 内核队列缓存
D. 共享内存