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

    146 2024-01-18 《Golang面试题》
    select可以用于什么 答案1: select可以用于什么 参考解析 题目来源:腾讯 答案1: Go 的通道有两种操作方式,一种是带 range 子句的 for 语句,另一种则是 select 语句,它是专门为了操作通道而存在的。这里主要介绍 select 的用法。 select的语法 select 语句的语法如下: sel...
  • 159.为什么P的local queue可无锁访问,任务窃取的时候要加锁吗?

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

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

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

    146 2024-01-24 《Golang面试题》
    Golang Slice 的底层实现 Golang Slice 的底层实现 参考解析 切片是基于数组实现的,它的底层是数组,它自己本身非常小,可以理解为对 底层数组的抽象。因为基于数组实现,所以它的底层的内存是连续分配的,效 率非常高,还可以通过索引获得数据。 切片本身并不是动态数组或者数组指针。它内部实现的数据结构通过指针引用 底层数组,设定...
  • 445.与其他语言相比,使用 Go 有什么好处?

    146 2024-01-23 《Golang面试题》
    与其他语言相比,使用 Go 有什么好处? 与其他语言相比,使用 Go 有什么好处? 参考解析 与其他作为学术实验开始的语言不同,Go 代码的设计是务实的。每个功能和语法决策都旨在让程序员的生活更轻松。 Golang 针对并发进行了优化,并且在规模上运行良好。 由于单一的标准代码格式,Golang 通常被认为比其他语言更具可读性。 自动垃圾收集明显比 ...
  • 307.go 从源码到二进制代码的整个流程

    146 2024-01-22 《Golang面试题》
    go 从源码到二进制代码的整个流程 go 从源码到二进制代码的整个流程 题目来源: 答案: 从源代码文件到可执行文件过程发生了哪些事情 前端编译1.根据架构初始化不同的链接器Link结构体2.根据一些参数 比如,go compile后用户输入的参数初始化Link结构体里面的一些字段3.词法分析、语法分析 生成ast抽象语法树,类型检查...
  • 524.Go map如何查找?

    146 2024-01-25 《Golang面试题》
    Go map如何查找? Go map如何查找? 参考解析 Go 语言中读取 map 有两种语法:带 comma 和 不带 comma。当要查询的 key 不在 map 里,带 comma 的用法会返回一个 bool 型变量提示 key 是否在 map 中;而不带 comma 的语句则会返回一个 value 类型的零值。如果 value 是 int...
  • 334.defer问题

    146 2024-01-22 《Golang面试题》
    题目来源:富途证券 答案1: defer数据结构: type _defer struct { sp uintptr //函数栈指针 pc uintptr //程序计数器 fn * funcval //函数地址 link * _defe...
  • 328.性能调优怎么做

    145 2024-01-22 《Golang面试题》
    性能调优怎么做 性能调优怎么做 题目来源:腾讯 答案: 1.首先要了解调优的基本思路 1.对外接口协议不能改变 2.了解需求和代码演进过程 3.确定资源消耗类型 4.控制运算数据输入量 5.提高 CPU 利用率 6.提高缓存命中率 2.使用pprof查看程序的CUP火焰图,CUP调用关系、CUP调用关系、查看goroutine情况 ...