摘要: GMP调度场景 场景1 P拥有G1,M1获取P后开始运行G1,G1使用 go func 创建G2,为了局部性G2优先加入到P1的本地队列 场景2 G1运行完成后(函数:goexit),M上运行的goroutine切换为G0,G0负责调度时协程的切换(函数:schedule)。从P的本地队列取G2,从 阅读全文
posted @ 2023-05-09 13:30 Ezra_N 阅读(65) 评论(3) 推荐(0)
摘要: Golang GMP原理(1) 概念梳理 线程 线程一般指内核级线程,核心如下: 操作系统的最小调度单元 创建 销毁 调度由内核完成,cpu要完成内核态与用户态的转换 可充分利用多核,实现并行 协程 协程线程对应 协程,又称为用户级线程,核心点如下: 与线程存在映射关系,为M:1 创建、销毁、调度在 阅读全文
posted @ 2023-04-28 14:16 Ezra_N 阅读(201) 评论(0) 推荐(0)
摘要: go channel源码阅读 channel 介绍 channel是一个类型管道,通过它可以在groutine之间发送消息 核心数据结构 channel内部数据结构是固定长度的双向循环列表 按顺序往里面写数据,写满之后又从0开始写 chan中的两个重要组件是buf和waitq,所有的行为和实现都是围 阅读全文
posted @ 2023-04-26 13:32 Ezra_N 阅读(37) 评论(0) 推荐(0)
摘要: cookie,session,token,jwt Cookie cookie是为了解决HTTP在状态管理上的不足,HTPP是无状态协议。目的是让服务端知道客户端的身份。cookie储存在客户端。 Session session是记录服务器和客户端会话状态的机制 session是基于cookie实现的 阅读全文
posted @ 2023-04-22 11:27 Ezra_N 阅读(40) 评论(0) 推荐(0)