IT书架 本次搜索耗时 0.040 秒,为您找到 746 个相关结果.
  • 并发编程

    1.Go 常用的并发模型? 2.Go 有哪些并发同步原语? 3.Go WaitGroup实现原理? 4. Go Cond实现原理? 5. Go 有哪些方式安全读写共享变量? 6. Go 如何排查数据竞争问题?
  • 526.Go map 的负载因子为什么是 6.5?

    119 2024-01-25 《Golang面试题》
    Go map 的负载因子为什么是 6.5? Go map 的负载因子为什么是 6.5? 参考解析 什么是负载因子? 负载因子(load factor),用于衡量当前哈希表中空间占用率的核心指标 ,也就是每个 bucket 桶存储的平均元素个数。 负载因子 = 哈希表存储的元素个数/桶个数 另外负载因子与扩容、迁移 等重新散列(...
  • 4. Go Cond实现原理?

    4. Go Cond实现原理? 概念 底层数据结构 使用方法 4. Go Cond实现原理? 概念 Go 标准库提供了Cond 原语,可以让 Goroutine 在满足特定条件时被阻塞和唤醒 底层数据结构 type Cond struct { noCopy noCopy // L is held...
  • 3.Go WaitGroup实现原理?

    3.Go WaitGroup实现原理? 概念 底层数据结构 使用方法 3.Go WaitGroup实现原理? 概念 Go 标准库提供了WaitGroup 原语, 可以用它来等待一批 Goroutine 结束 底层数据结构 // A WaitGroup must not be copied after first use. type...
  • 4.Go work stealing 机制?

    4.Go work stealing 机制? 概念 窃取流程 选择要窃取的P 从P中偷走一半G 4.Go work stealing 机制? 概念 当线程M⽆可运⾏的G时,尝试从其他M绑定的P偷取G,减少空转,提高了线程利用率(避免闲着不干活)。 当从本线程绑定 P 本地 队列、全局G队列、netpoller都找不到可执行的 g,会...
  • 7.Go map如何扩容?

    7.Go map如何扩容? 7.Go map如何扩容? 扩容时机: 在向 map 插入新 key 的时候,会进行条件检测,符合下面这 2 个条件,就会触发扩容 if ! h . growing () && ( overLoadFactor ( h . count + 1 , h . B ) || tooManyOverfl...
  • 4.Go map如何查找?

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

    基于区块链的房地产交易系统 技术栈 区块链基础知识 Hyperledger Fabric 基础知识 搭建区块链网络 编写智能合约 部署链码 编写应用程序 基于区块链的房地产交易系统 好久不见,看了下,距离上次更文 1 个多月过去了,卷不动。 大概 2 年前,碰巧学习区块链(Hyperledger Fabric),便写了一个入门级的项目...
  • 552.Go hand off 机制?

    129 2024-01-25 《Golang面试题》
    Go hand off 机制? Go hand off 机制? 参考解析 概念 也称为P分离机制,当本线程 M 因为 G 进行的系统调用阻塞时,线程释放绑定的 P,把 P 转移给其他空闲的 M 执行,也提高了线程利用率(避免站着茅坑不拉shi)。 分离流程 当前线程M阻塞时,释放P,给其它空闲的M处理
  • 519.Go slice扩容机制?

    123 2024-01-25 《Golang面试题》
    Go slice扩容机制? Go 1.18版本之前 Go 1.18版本切片扩容 Go slice扩容机制? Go 1.18版本之前 扩容会发生在slice append的时候,当slice的cap不足以容纳新元素,就会进行扩容,扩容规则如下 如果新申请容量比两倍原有容量大,那么扩容后容量大小 为 新申请容量 如果原有 slice 长度小于...