IT书架 本次搜索耗时 0.124 秒,为您找到 1075 个相关结果.
  • 1.Go channel的底层实现原理?

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

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

    1.Go slice的底层实现原理? 2.Go slice深拷贝和浅拷贝 3.Go slice扩容机制? 4.Go slice为什么不是线程安全的?
  • 4.Go GC实现原理?

    4.Go GC实现原理? 什么是GC? 主流GC算法 Go GC算法 三色标记法 root对象 插入写屏障 删除写屏障 混合写屏障 GC流程 GC触发时机 GC算法演进 4.Go GC实现原理? 什么是GC? 垃圾回收也称为GC(Garbage Collection),是一种自动内存管理机制 现代高级编程语言管理...
  • 课程介绍

    《Go语言设计模式》 看懂UML类图和时序图
  • 4.Go slice为什么不是线程安全的?

    4.Go slice为什么不是线程安全的? 4.Go slice为什么不是线程安全的? 先看下线程安全的定义 : 多个线程访问同一个对象时,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。 若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。 再看Go语言实现线程安全常用的几种方式 : 互斥锁...
  • 2.Go slice深拷贝和浅拷贝

    2.Go slice深拷贝和浅拷贝 2.Go slice深拷贝和浅拷贝 深拷贝:拷贝的是数据本身,创造一个新对象,新创建的对象与原对象不共享内存,新创建的对象在内存中开辟一个新的内存地址,新对象值修改时不会影响原对象值 实现深拷贝的方式: copy(slice2, slice1) 遍历append赋值 func main () {...
  • 3.Go 调度原理?

    3.Go 调度原理? 设计思想 调度对象 被调度对象 调度流程 调度时机 调度策略 3.Go 调度原理? goroutine调度的本质就是将 Goroutine (G) 按照一定算法放到CPU上去执行。 CPU感知不到Goroutine,只知道内核线程,所以需要Go调度器 将协程调度到内核线程上面去,然后操作系统调度器 将内核线程放到C...
  • 9.Go 内置函数make和new的区别?

    9.Go 内置函数make和new的区别? 9.Go 内置函数make和new的区别? 首先纠正下make和new是内置函数,不是关键字 变量初始化,一般包括2步,变量声明 + 变量内存分配,var关键字就是用来声明变量的,new和make函数主要是用来分配内存的 var声明值类型 的变量时,系统会默认为他分配内存空间 ,并赋该类型的零值 比...
  • 1.Go 内存分配机制?

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