IT书架 本次搜索耗时 0.123 秒,为您找到 1075 个相关结果.
  • 6. Go 如何排查数据竞争问题?

    6. Go 如何排查数据竞争问题? 概念 排查方式 6. Go 如何排查数据竞争问题? 概念 只要有两个以上的goroutine并发访问同一变量,且至少其中的一个是写操作的时候就会发生数据竞争;全是读的情况下是不存在数据竞争的。 排查方式 package main import "fmt" func main ()...
  • 4.Go map如何查找?

    4.Go map如何查找? # 查找流程 4.Go map如何查找? Go 语言中读取 map 有两种语法:带 comma 和 不带 comma。当要查询的 key 不在 map 里,带 comma 的用法会返回一个 bool 型变量提示 key 是否在 map 中;而不带 comma 的语句则会返回一个 value 类型的零值。如果 value...
  • 2.Go goroutine和线程的区别?

    2.Go goroutine和线程的区别? 2.Go goroutine和线程的区别? goroutine 线程 内存占用 创建一个 goroutine 的栈内存消耗为 2 KB,实际运行过程中,如果栈空间不够用,会自动进行扩容 创建一个 线程 的栈内存消耗为 1 MB 创建和销毀 goroutine 因为是由 Go...
  • 3.Go 内存对齐机制?

    3.Go 内存对齐机制? 什么是内存对齐 对齐系数 优点 缺点 结构体对齐 3.Go 内存对齐机制? 什么是内存对齐 为了能让CPU可以更快的存取到各个字段,Go编译器会帮你把struct结构体做数据的对齐。所谓的数据对齐,是指内存地址是所存储数据大小(按字节为单位)的整数倍,以便CPU可以一次将该数据从内存中读取出来。 编译器通过在...
  • 1.Go 互斥锁的实现原理?

    1.Go 互斥锁的实现原理? 概念 使用场景 底层实现结构 操作 加锁 解锁 注意点: 1.Go 互斥锁的实现原理? Go sync包提供了两种锁类型:互斥锁sync.Mutex 和 读写互斥锁sync.RWMutex,都属于悲观锁。 概念 Mutex是互斥锁,当一个 goroutine 获得了锁后,其他 goroutine...
  • 4. Go Cond实现原理?

    4. Go Cond实现原理? 概念 底层数据结构 使用方法 4. Go Cond实现原理? 概念 Go 标准库提供了Cond 原语,可以让 Goroutine 在满足特定条件时被阻塞和唤醒 底层数据结构 type Cond struct { noCopy noCopy // L is held...
  • 5.Go channel如何控制goroutine并发执行顺序?

    5.Go channel如何控制goroutine并发执行顺序? 5.Go channel如何控制goroutine并发执行顺序? 多个goroutine并发执行时,每一个goroutine抢到处理器的时间点不一致,gorouine的执行本身不能保证顺序 。即代码中先写的gorouine并不能保证先执行 思路:使用channel进行通信通知,用ch...
  • 567.Golang调度器GPM原理与调度全分析

    49 2024-04-29 《Golang面试题》
    一、Golang“调度器”的由来? (1) 单进程时代不需要调度器 (2)多进程/线程时代有了调度器需求 (3)协程来提高CPU利用率 (4)Go语言的协程goroutine (5)被废弃的goroutine调度器 二、Goroutine调度器的GMP模型的设计思想 (1)GMP模型 (2)调度器的设计策略 (3) go func() 调度流...
  • 5.Go GC如何调优?

    5.Go GC如何调优? 5.Go GC如何调优? 控制内存分配的速度,限制 Goroutine 的数量,提高赋值器 mutator 的 CPU 利用率(降低GC的CPU利用率) 少量使用+连接string slice提前分配足够的内存来降低扩容带来的拷贝 避免map key对象过多,导致扫描时间增加 变量复用,减少对象分配,例如使用 sync.P...
  • 4.Go channel为什么是线程安全的?

    4.Go channel为什么是线程安全的? 为什么设计成线程安全? 如何实现线程安全的? 4.Go channel为什么是线程安全的? 为什么设计成线程安全? 不同协程通过channel进行通信,本身的使用场景就是多线程,为了保证数据的一致性,必须实现线程安全 如何实现线程安全的? channel的底层实现中,hchan结构体中采用M...