编程开发-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. 共享内存