当前位置:首页 > Golang

Go言语Context包源码学习

邻居的猫1个月前 (12-09)375
Go言语Context包源码学习
0前言 context包作为使用go进行server端开发的重要工具,其源码只有791行,不包含注释的话预计在500行左右,非常值得我们去深入探讨学习,于是在本篇笔记中我们一起来观察源码的实现,知其然更要知其所以然。(当前使用go版本为1.22.2) 1核心数据结构 整体的接口实现和结构体embed...

Golang的GMP调度模型与源码解析

邻居的猫1个月前 (12-09)418
Golang的GMP调度模型与源码解析
0、引言 我们知道,这当代操作系统中,多线程和多进程模型被广泛的使用以提高系统的并发效率。随着互联网不断的发展,面对如今的高并发场景,为每个任务都创建一个线程是不现实的,使用线程则需要系统不断的在用户态和内核态之间不断的切换,引起不必要的损耗,于是引入了协程。协程存在于用户空间,是一种轻量级的并发执...

Golang网络模型netpoll源码解析

邻居的猫1个月前 (12-09)1473
Golang网络模型netpoll源码解析
0、引言 在学习完了Socket编程的基础知识、Linux系统提供的I/O多路复用的实现以及Golang的GMP调度模型之后,我们进而学习Golang的网络模型——netpoll。本文将从为什么需要使用netpoll模型,以及netpoll的具体流程实现两个主要角度来展开学习。当前使用的Go的版本为...