邓承超的个人日志
  • 随笔
  • 读过的书
  • 设计模式
  • 关于我

月份:2022年10月

GMP模型(六)M的状态流转

继续看m,在golang中没有对m的状态的枚举,但是我们依然可以根据其代码运行过程,将其分为以下几种状态: 这里我们模仿之前G和P的状态枚举,列举出M的状态枚举 新建状态(_Mnew):此时m完成OS Thread创建,完成g0的初始化,等 … 继续阅读 GMP模型(六)M的状态流转

作者 dengchengchao@outlook.com发表于 2022年10月5日2022年10月5日

GMP模型(五)P的状态流转

继续看P,对于p来说,p的生命周期比较简单,在进程刚初始化时,便会首先初始化所有的p: P的初始化 在系统入口函数runtime·rt0_go(SB)中,会调用schedinit()函数初始化全局变量sched时,会调用procresize … 继续阅读 GMP模型(五)P的状态流转

作者 dengchengchao@outlook.com发表于 2022年10月5日2022年10月12日

GMP模型(四)G的主动挂起状态

继续看g,在上一章中我们了解了golang如何解决g中代码存在系统调用的问题,接下来继续看另外一种情况,当g中存在锁或者类似需要waiting状态的时候,需要怎么处理? 其实简单想一想也能明白,无非是将g暂时挂起,让p继续调度其他g,等g执 … 继续阅读 GMP模型(四)G的主动挂起状态

作者 dengchengchao@outlook.com发表于 2022年10月5日2022年10月5日

GMP模型(三)G与系统调用

在上一章内容中,我们了解的G的生命周期,接下来我们继续第一章中简版GMP模型中留下的问题; G的中断 当我们执行系统调用时,如果不进行特殊处理,则会阻塞M,进而使得整个系统被拖慢,在golang中,通过系统调用源码可以找到,所有的系统调用最 … 继续阅读 GMP模型(三)G与系统调用

作者 dengchengchao@outlook.com发表于 2022年10月5日2022年10月5日

GMP模型(二)G的创建与执行

GMP中的G是对任务的抽象,其通过g结构体表示,其定义在runtime.runtime2.go中。 G 的创建 当程序中使用go关键字创建一个goroutine时,编译器会将其编译为newproc()函数,用来创建一个新的goroutine … 继续阅读 GMP模型(二)G的创建与执行

作者 dengchengchao@outlook.com发表于 2022年10月5日2022年10月5日

GMP模型(一) 使用Java语言实现一个简单的协程?

golang最大一特色便是其原生支持goroutine,轻量的goroutine的实现可以使得程序轻松支持超高并发。想要深入学习golang,少不了详细理解goroutine原理。 goroutine是golang实现的用户级线程,其具有以 … 继续阅读 GMP模型(一) 使用Java语言实现一个简单的协程?

作者 dengchengchao@outlook.com发表于 2022年10月5日2022年10月12日

发布者

头像

dengchengchao

不积跬步 无以至千里

欢迎关注公众号:StackTrace

分类目录

  • Docker
  • Go
  • JVM
  • Kafka
  • MongoDB
  • MyBatis
  • MySQL
  • Redis
  • Tomcat
  • 技术日志
  • 日记
  • 杂记
  • 算法
  • 设计模式
  • 随便写写
  • 首页

标签

ClassLoader Digester Docker Dockerfile File Files GMP Go HashMap IDEA Java Java8 JavaAgent Java 基础 Java工具 Java 干货 Java 语法 JMH JVM kafka log MongoDB MyBatis Path redis Spring String switch Tomcat UTF8 编码 创建型模式 双亲委派机制 工厂方法 建造者模式 技术干货 技术日志 抽象工厂 源代码 简单工厂 类加载 结构型模式 行为型模式 设计模式 责任链模式 面向对象设计原则

文章归档

  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年7月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年1月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2020年2月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
           
© 2017 - 2023 邓承超的个人日志 版权所有 京ICP备18030052号-1