240 发简信
IP属地:贵州
  • 120
    Golang slice 的底层实现

    首先我们来看段代码的输出 输出的结果是 append的值5并没有输出,那么究竟是s0并不等价于s[0],还是有其他原因呢?首先,肯定的是在Go中,所有的拷贝都是值拷贝,不存在...

  • 120
    Golang map 的底层实现

    在开发过程中,map是必不可少的数据结构,在Golang中,使用map或多或少会遇到与其他语言不一样的体验,比如访问不存在的元素会返回其类型的空值、map的大小究竟是多少,为...

  • 120
    如何设计并实现一个线程安全的 Map ?(上篇)

    Map 是一种很常见的数据结构,用于存储一些无序的键值对。在主流的编程语言中,默认就自带它的实现。C、C++ 中的 STL 就实现了 Map,JavaScript 中也有 M...

  • 120
    探索Go内存管理(分配)

    基于1.8.3版本,64位Linux操作系统 1、概述 Go内存管理基于tcmalloc,使用连续虚拟地址,以页(8k)为单位、多级缓存进行管理; 在分配内存时,需要对siz...

  • STL string与Go string

    P.S. 这里不讨论COW(copy-on-write)和SSO(short-string-optimization) STL string(gcc 4.9.3) 通过源码可...

  • Go: defer与return小记

    1 官方定义 A defer statement pushes a function call onto a list. The list of saved calls is...

  • 120
    探索C++与Go的接口底层实现

    1、C++ 中的“接口” C++并没有明确的“接口”,一般约定继承某个类,已达到接口的“实现”。 首先我们来看下单继承的内存布局(依赖各厂商的实际实现,这里仅以微软实现为例进...