IT书架 本次搜索耗时 0.108 秒,为您找到 1023 个相关结果.
  • 5.Go 方法值接收者和指针接收者的区别?

    5.Go 方法值接收者和指针接收者的区别? 5.Go 方法值接收者和指针接收者的区别? 如果方法的接收者是指针类型,无论调用者是对象还是对象指针,修改的都是对象本身,会影响调用者; 如果方法的接收者是值类型,无论调用者是对象还是对象指针,修改的都是对象的副本,不影响调用者; package main import "fmt" ...
  • 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...
  • 工厂方法模式

    工厂方法模式 2.1 模式动机 2.2 模式定义 2.3 模式结构 2.4 时序图 2.5 模式分析 2.6 实例 2.7 工厂方法模式的优点 2.8 工厂方法模式的缺点 2.9 适用环境 2.10 模式扩展 2.11 Go语言实现 factorymethod.go factorymethod_test.go 2.12 总结 ...
  • 1.Go channel的底层实现原理?

    1.Go channel的底层实现原理? 1.Go channel的底层实现原理? 概念: Go中的channel 是一个队列,遵循先进先出的原则,负责协程之间的通信(Go 语言提倡不要通过共享内存来通信,而要通过通信来实现内存共享,CSP(Communicating Sequential Process)并发模型,就是通过 goroutine ...
  • 1.Go 常用的并发模型?

    1.Go 常用的并发模型? 线程间通信方式 共享内存 发送消息 共享内存并发模型 CSP并发模型 1.Go 常用的并发模型? 并发模型说的是系统中的线程如何协作完成并发任务,不同的并发模型,线程以不同的方式进行通信 和协作。 线程间通信方式 线程间通信方式有两种:共享内存和消息传递,无论是哪种通信模型,线程或者协程最终都会从内存中...
  • 4.Go GC实现原理?

    4.Go GC实现原理? 什么是GC? 主流GC算法 Go GC算法 三色标记法 root对象 插入写屏障 删除写屏障 混合写屏障 GC流程 GC触发时机 GC算法演进 4.Go GC实现原理? 什么是GC? 垃圾回收也称为GC(Garbage Collection),是一种自动内存管理机制 现代高级编程语言管理...
  • 6. Go 函数返回局部变量的指针是否安全?

    6. Go 函数返回局部变量的指针是否安全? 6. Go 函数返回局部变量的指针是否安全? 一般来说,局部变量会在函数返回后被销毁,因此被返回的引用就成为了”无所指”的引用,程序会进入未知状态。 但这在 Go 中是安全的,Go 编译器将会对每个局部变量进行逃逸分析。如果发现局部变量的作用域超出该函数,则不会将内存分配在栈上,而是分配在堆上,因为他们...
  • 3.Go 调度原理?

    3.Go 调度原理? 设计思想 调度对象 被调度对象 调度流程 调度时机 调度策略 3.Go 调度原理? goroutine调度的本质就是将 Goroutine (G) 按照一定算法放到CPU上去执行。 CPU感知不到Goroutine,只知道内核线程,所以需要Go调度器 将协程调度到内核线程上面去,然后操作系统调度器 将内核线程放到C...
  • 84.redis缓存雪崩、击穿、穿透、到底是什么

    今日目标 一、场景 二、缓存雪崩 三、缓存穿透 四、缓存击穿 五、思考 今日目标 能够掌握Redis缓存雪崩概念及解决方案 能够掌握Redis缓存击穿概念及解决方案 能够掌握Redis缓存穿透概念及解决方案 一、场景 在今天的互联网里,高并发、大数据量、大流量已经成为了代言词,那么我们的系统也承受着巨大的压力,首当其冲的解决方案就是...
  • 1.Go 内存分配机制?

    1.Go 内存分配机制? 设计思想 分配组件 内存管理单元:mspan 线程缓存:mcache 中心缓存:mcentral 页堆:mheap 分配对象 分配流程 1.Go 内存分配机制? Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样...