240 发简信
IP属地:辽宁
  • mac 和 win 上给 ssh key 配置钥匙串

    以 git 为例,最安全的生成SSH命令大概就是: 但很多人偷懒,不设置 passphrase ,但其实这样很不安全。这里必须输入一个强 pas...

    3.5 27 0 2
  • 结合自定义 Tag 去理解 Golang 的反射

    提到反射,不得不提到接口interface,这是一对双生子。简单来说:接口是反射的基石,而反射是接口在运行时的“透视镜”。 一、interfac...

  • 结合 conn.Read 的 epoll 机制去理解 Golang 的GPM模型

    如果你已经理解了 epoll 是什么,也看懂了 Golang 对它的封装,那我们现在就来回答一个更深的问题: 一个 goroutine 卡在 c...

  • Resize,w 360,h 240
    epoll 以及从 conn.Read 出发探讨 Golang 对 epoll 的封装

    一、epoll是什么? epoll是 Linux 内核中一种高性能的 I/O 多路复用机制。 如果你正在开发一个需要同时处理成千上万个客户端连接...

  • sync.Once 在高并发环境下依然保持高效的原因

    在 Go 的并发编程中,sync.Once 是一个非常经典的同步原语。它的作用很简单:保证某个函数在并发环境中只执行一次。无论有多少个 goro...

  • Map 无序的底层原因

    本质原因是 Map 底层是 Hash 表。 当你插入键值对时: 对 key 做 hash 运算 根据 hash 结果决定存到哪个 bucket ...

  • Golang 的 defer 底层实现

    一、数据结构 defer的核心数据结构是: 可以看到这里有个链表指针,这就是defer后进先出 (LIFO)的原因,链表是用头插法构建的,后写的...

  • Golang 的GC三色标记法、写屏障的简单理解

    Golang 程序运行的时候,内存中的对象可以标记为三色:白色、灰色、黑色。 想象你是一个保洁阿姨(GC),你的任务是把房间里没人要的垃圾扔掉,...

  • 如何理解 sync.Map 维持读和写的平衡

    sync.Map非常适合读多的场景,因为sync.Map的readonly部分是无锁读取,所以效率跟普通map差不多。如果用一句话来理解 syn...