IT书架 本次搜索耗时 0.107 秒,为您找到 1023 个相关结果.
  • 223.select可以用于什么

    146 2024-01-18 《Golang面试题》
    select可以用于什么 答案1: select可以用于什么 参考解析 题目来源:腾讯 答案1: Go 的通道有两种操作方式,一种是带 range 子句的 for 语句,另一种则是 select 语句,它是专门为了操作通道而存在的。这里主要介绍 select 的用法。 select的语法 select 语句的语法如下: sel...
  • 553.Go 抢占式调度

    146 2024-01-25 《Golang面试题》
    Go 抢占式调度 基于协作的抢占式调度 基于信号的抢占式调度 Go 抢占式调度 在1.2版本之前,Go的调度器仍然不支持抢占式调度,程序只能依靠Goroutine主动让出CPU资源才能触发调度,这会引发一些问题,比如: 某些 Goroutine 可以长时间占用线程,造成其它 Goroutine 的饥饿 垃圾回收器是需要stop the wor...
  • 307.go 从源码到二进制代码的整个流程

    146 2024-01-22 《Golang面试题》
    go 从源码到二进制代码的整个流程 go 从源码到二进制代码的整个流程 题目来源: 答案: 从源代码文件到可执行文件过程发生了哪些事情 前端编译1.根据架构初始化不同的链接器Link结构体2.根据一些参数 比如,go compile后用户输入的参数初始化Link结构体里面的一些字段3.词法分析、语法分析 生成ast抽象语法树,类型检查...
  • 159.为什么P的local queue可无锁访问,任务窃取的时候要加锁吗?

    146 2024-01-18 《Golang面试题》
    为什么P的local queue可无锁访问,任务窃取的时候要加锁吗? 为什么P的local queue可无锁访问,任务窃取的时候要加锁吗? 题目来源:字节跳动 答案: 题解部分:如下图:绑定在P上的local queue是顺序执行的,不存在执行状态的G协程抢占,所以可以无锁访问。 任务窃取也是窃取其他P上等待状态的G协程,所以也可以...
  • 334.defer问题

    146 2024-01-22 《Golang面试题》
    题目来源:富途证券 答案1: defer数据结构: type _defer struct { sp uintptr //函数栈指针 pc uintptr //程序计数器 fn * funcval //函数地址 link * _defe...
  • 523.Go map为什么是非线程安全的?

    146 2024-01-25 《Golang面试题》
    Go map为什么是非线程安全的? Go map为什么是非线程安全的? 参考解析 map默认是并发不安全的,同时对map进行并发读写时,程序会panic,原因如下: Go 官方在经过了长时间的讨论后,认为 Go map 更应适配典型使用场景(不需要从多个 goroutine 中进行安全访问),而不是为了小部分情况(并发访问),导致大部分程序付出...
  • 255.网络连接的各层的状态

    145 2024-01-19 《Golang面试题》
    网络连接的各层的状态 网络连接的各层的状态 题目来源:网易互娱 (计网) 答案: 七层模型的每一层都具有清晰的特征。基本来说:1)第七至第四层(应用层->表示层->会话层->传输层)处理数据源和数据目的地之间的端到端通信,2)第三至第一层(网络层->数据链路层->物理层)处理网络设备间的通信。 另外:OSI模型的七层也可以划分为两组:...
  • 342. Go的闭包语法

    145 2024-01-22 《Golang面试题》
    Go的闭包语法 Go的闭包语法 题目来源:字节跳动 答案: go语言的闭包可以理解为一个引用外部变量的匿名函数,Go语言中闭包是引用了自由变量的函数,被引用的自由变量和函数一同存在,即使已经离开了自由变量的环境也不会被释放或者删除,在闭包中可以继续使用这个自由变量,因此,简单的说:函数 + 引用环境 = 闭包 同一个函数与不同引用环境组合,...
  • 555.Go 内存分配机制?

    145 2024-01-25 《Golang面试题》
    Go 内存分配机制? 设计思想 分配组件 内存管理单元:mspan 线程缓存:mcache 中心缓存:mcentral 页堆:mheap 分配对象 分配流程 Go 内存分配机制? Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样,不会每...
  • 337.如何实现只开100个协程

    145 2024-01-22 《Golang面试题》
    如何实现只开100个协程 如何实现只开100个协程 题目来源: 答案:sunrise // 利用 channel 的缓存区实现 func main () { var wg sync . WaitGroup ch := make ( chan struct {}, 3 ) for ...