IT书架 本次搜索耗时 0.120 秒,为您找到 1075 个相关结果.
  • 调度模型

    1.Go 线程实现模型? 2.Go GMP和GM模型? 3.Go 调度原理? 4.Go work stealing 机制? 5.Go hand off 机制? 6.Go 抢占式调度? 7.Go 如何查看运行时调度信息?
  • 1.Go 线程实现模型?

    1.Go 线程实现模型? 背景 三种线程模型 1.Go 线程实现模型? Go实现的是两级线程模型(M:N),准确的说是GMP模型,是对两级线程模型的改进实现,使它能够更加灵活地进行线程之间的调度。 背景 含义 缺点 单进程时代 每个程序就是一个进程,直到一个程序运行完,才能进行下一个进程 1. 无法并发,只能串行 ...
  • 3.Go WaitGroup实现原理?

    3.Go WaitGroup实现原理? 概念 底层数据结构 使用方法 3.Go WaitGroup实现原理? 概念 Go 标准库提供了WaitGroup 原语, 可以用它来等待一批 Goroutine 结束 底层数据结构 // A WaitGroup must not be copied after first use. type...
  • 8.Go map和sync.Map谁的性能好,为什么?

    8.Go map和sync.Map谁的性能好,为什么? 8.Go map和sync.Map谁的性能好,为什么? Go 语言的 sync.Map 支持并发读写,采取了 “空间换时间” 的机制,冗余了两个数据结构,分别是:read 和 dirty type Map struct { mu Mutex read atom...
  • Map

    1.Go map的底层实现原理? 2.Go map遍历为什么是无序的? 3.Go map为什么是非线程安全的? 4.Go map如何查找? 5.Go map冲突的解决方式? 6.Go map 的负载因子为什么是 6.5? 7.Go map如何扩容? 8.Go map和sync.Map谁的性能好,为什么?
  • 抽象工厂模式

    抽象工厂模式 3.1 模式动机 3.2. 模式定义 3.3 模式结构 3.4. 时序图 3.5 优点 3.6 缺点 3.7 适用环境 3.8 模式应用 3.9 模式扩展 “开闭原则”的倾斜性 工厂模式的退化 3.10 Go语言实现 abstractfactory.go abstractfactory_test.go 3.11 总结...
  • 7.Go map如何扩容?

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

    看懂UML类图和时序图 看懂UML类图和时序图 从一个示例开始 类之间的关系 泛化关系(generalization) 实现关系(realize) 聚合关系(aggregation) 组合关系(composition) 关联关系(association) 依赖关系(dependency) 时序图 看懂UML类图和时序图 看懂U...
  • 6. Go 如何排查数据竞争问题?

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

    1.Go goroutine的底层实现原理? 概念 底层数据结构 状态流转 创建 阻塞 唤醒 退出 1.Go goroutine的底层实现原理? 概念 Goroutine可以理解为一种Go语言的协程(轻量级线程),是Go支持高并发的基础,属于用户态的线程,由Go runtime管理而不是操作系统。 底层数据结构 type g ...