IT书架 本次搜索耗时 0.083 秒,为您找到 752 个相关结果.
  • 578.垃圾回收会影响线程的执行吗

    垃圾回收会影响线程的执行吗 1. 暂停(Stop-the-World) 2. 并发和增量GC 3. 影响Goroutine的响应时间 4. 影响性能 5. 调优GC 总结 垃圾回收会影响线程的执行吗 垃圾回收(GC)在Go语言中确实会对线程(或者更准确地说,对Goroutine)的执行产生影响。以下是GC对线程执行的具体影响和机...
  • 107.golang http库设计原理,为什么不池化

    golang http库设计原理,为什么不池化 golang http库设计原理,为什么不池化 题目来源: 字节跳动 答案1: http库设计原理 用 Go 实现一个 http server 非常容易,Go 语言标准库 net/http 自带了一系列结构和方法来帮助开发者简化 HTTP 服务开发的相关流程。因此,我们不需要依赖任何...
  • 27.代码规范:Go 编码规范

    1. 代码风格 1.1 代码格式 1.2 声明、初始化和定义 1.3 错误处理 1.4 panic 处理 1.5 单元测试 1.6 类型断言失败处理 2. 命名规范 2.1 包命名 2.2 函数命名 2.3 文件命名 2.4 结构体命名 2.5 接口命名 2.6 变量命名 2.7 常量命名 2.8 Error 的命名 3. 注...
  • 34.Go map 的底层实现 ?

    Go map 的底层实现 ? Go map 的底层实现 ? 题目来源 :好未来、小米、腾讯、小米、滴滴、腾讯、字节跳动、畅天游 答案1: Go语言的map使用Hash表和搜索树作为底层实现,一个Hash表可以有多个bucket,而每个bucket保存了map中的一个或一组键值对。 源码: runtime/map.go:hmap //...
  • 2.Go channel有什么特点?

    2.Go channel有什么特点? 2.Go channel有什么特点? channel有2种类型:无缓冲、有缓冲 channel有3种模式:写操作模式(单向通道)、读操作模式(单向通道)、读写操作模式(双向通道) 写操作模式 读操作模式 读写操作模式 创建 make(chan<- int) make(<-chan ...
  • 127.go使用中遇到的问题

    go使用中遇到的问题 go使用中遇到的问题 题目来源:小米 答案1: 1.如短变量声明不能用于包级变量。变量遮蔽(variable shadowing)等。接口返回值与nil比较。 2.接口类型在运行时的表示分为两部分,一部分是类型信息,一部分是值信息。只有当接口类型变量的这两部分的值都为nil时,该变量才与nil相等 3.for r...
  • 4.Go slice为什么不是线程安全的?

    4.Go slice为什么不是线程安全的? 4.Go slice为什么不是线程安全的? 先看下线程安全的定义 : 多个线程访问同一个对象时,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。 若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。 再看Go语言实现线程安全常用的几种方式 : 互斥锁...
  • 445.与其他语言相比,使用 Go 有什么好处?

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

    职责链模式 10.1 模式动机 10.2 Go语言实现 chain.go chain_test.go 职责链模式 10.1 模式动机 职责链模式用于分离不同职责,并且动态组合相关职责。 Golang实现职责链模式时候,因为没有继承的支持,使用链对象包涵职责的方式,即: 链对象包含当前职责对象以及下一个职责链。 职责对象提供接口表示是...
  • 320.如果项目里api耗时过久,你会怎么去排查

    如果项目里api耗时过久,你会怎么去排查 如果项目里api耗时过久,你会怎么去排查 题目来源: 百度 答案: 如果项目添加链路追踪,每一处的调用耗时记录在日志当中,通过日志先找到问题的大概地方 主要先查看数据库和内存中间件的耗时,定位到主要问题,分别查看中间件服务上面的cpu, 内存, 磁盘io,网络连接 排除上面问题,业务代码的问...