-
goroutine的调度
goroutine的本质是协程,是实现并行计算的核心。使用go关键字启动一个异步工作的协程,协程相对线程更加轻量化,协程运行在一个或多个线程上。各个协程之间的调度则有程序底层完成(线程和进程的操作是由程序触发系统接口,最后的执行者是系统)。协程拥有自己的寄存器上下文和栈,协程调度切换时 将寄存器和栈保存到其他地方,切换回来时再将寄存器上下文和栈恢复,这样 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),
2. go struct能不能比较
因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型
3. 函数体 多次 defer 或 go defer执行顺序
defer是golang的一个特色功能,被称为“延迟调用函数”。当外部函数返回后执行defer。 执行顺序 先进后出 (类似 栈)
4。 go select 原理 https://blog.csdn.net/u011957758/article/details/82230316
golang 的 select 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作每个case语句里必须是一个IO操作,确切的说,应该是一个面向channel的IO操作
go select 的使用 https://blog.csdn.n