一闪笔记 本次搜索耗时 0.133 秒,为您找到 750 个相关结果.
  • 64.go 语言的 panic 如何恢复

    223 2024-01-17 《Golang面试题》
    go 语言的 panic 如何恢复 go 语言的 panic 如何恢复 **题目来源:**腾讯 答案1: recover 可以中止 panic 造成的程序崩溃,或者说平息运行时恐慌,recover 函数不需要任何参数,并且会返回一个空接口类型的值。需要注意的是 recover 只能在 defer 中发挥作用,在其他作用域中调用不会发挥...
  • 542.Go原子操作和锁的区别?

    133 2024-01-25 《Golang面试题》
    Go原子操作和锁的区别? Go原子操作和锁的区别? 原子操作由底层硬件支持,而锁是基于原子操作+信号量完成的。若实现相同的功能,前者通常会更有效率 原子操作是单个指令的互斥操作;互斥锁/读写锁是一种数据结构,可以完成临界区(多个指令)的互斥操作,扩大原子操作的范围 原子操作是无锁操作,属于乐观锁;说起锁的时候,一般属于悲观锁 原子操作存在于各个...
  • 216.go的hashmap如何实现的

    142 2024-01-18 《Golang面试题》
    go的hashmap如何实现的 go的hashmap如何实现的 题目来源: 答案1: goLang中的map来存储键值对类型的数据,但是它的内部实现是怎么样的? 其实map是一种HashMap,表面上看它只有键值对结构,实际上在存储键值对的过程中涉及到了数组和链表。HashMap之所以高效,是因为其结合了顺序存储(数组)和链式存储(链表)...
  • 1.Go map的底层实现原理?

    1.Go map的底层实现原理? 1.Go map的底层实现原理? Go中的map是一个指针,占用8个字节,指向hmap结构体 源码包中src/runtime/map.go 定义了hmap的数据结构: hmap包含若干个结构为bmap的数组,每个bmap底层都采用链表结构,bmap通常叫其bucket hmap结构体 // A head...
  • 529.Go channel的底层实现原理?

    141 2024-01-25 《Golang面试题》
    Go channel的底层实现原理? Go channel的底层实现原理? 参考解析 概念: Go中的channel 是一个队列,遵循先进先出的原则,负责协程之间的通信(Go 语言提倡不要通过共享内存来通信,而要通过通信来实现内存共享,CSP(Communicating Sequential Process)并发模型,就是通过 gorouti...
  • 193.Go的数据结构的零值是什么?

    154 2024-01-18 《Golang面试题》
    Go的数据结构的零值是什么? Go的数据结构的零值是什么? 题目来源:Shein 答案: 所有整型类型:0 浮点类型:0.0 布尔类型:false 字符串类型:”” 指针、interface、切片(slice)、channel、map、function:nil Go的零值初始是递归的,即数组、结构体等类型的零值初始化就是对其组成元素...
  • 553.Go 抢占式调度

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

    150 2024-01-19 《Golang面试题》
    内存对其了解吗? 答案: 内存对其了解吗? 参考解析 题目来源:知乎 答案: go语言的内存分配是基于tcmalloc模型的. go语言跟大多数内置运行时(runtime)的编程语言一样,抛弃传统内存分配的方式,改为自己管理。这样可以完成类似预分配、内存池等操作,以闭开系统调用带来的性能问题,防止每次分配内存都需要系统调用。 go...
  • 5.grpc下的健康检查

    1. grpc的健康检查规范 2. go配置grpc的健康检查 1. grpc的健康检查规范 官方文档 grpc健康检查重要点: check = { “ GRPC ”: "ip:port" , “ GRPCUseTLS ”: False , “ Timeout ”: “ 5s ”, ...
  • Golang开源发布自己的包

    615 2024-07-23 《程序人生》
    Golang开源发布自己的包 1.前言 2.新建仓库 3. 构建项目和代码 4.提交和发布代码 5.引入和使用包 Golang开源发布自己的包 1.前言 我们平时在Golang项目的编码过程中,除了经常通过import 使用官方提供的依赖包,也经常通过go get -u github.com/xxx/xxx 命令下载第三方包来使用。那么...