执迷 执迷
首页
  • 技术分享

    • 小白都能看懂的闭包
    • GO-GMP模型
    • MySQL调优
    • centos7部署nacos
    • elasticserch
    • redis
  • 发布一个node插件

    • 发布一个npm包
    • 如何打包一个插件工具库
    • 打包工具的选择
  • JavaScript
  • ES6
  • CSS
  • 框架
  • Node
  • 服务
  • 其他
自我介绍
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

执迷

代码也是艺术
首页
  • 技术分享

    • 小白都能看懂的闭包
    • GO-GMP模型
    • MySQL调优
    • centos7部署nacos
    • elasticserch
    • redis
  • 发布一个node插件

    • 发布一个npm包
    • 如何打包一个插件工具库
    • 打包工具的选择
  • JavaScript
  • ES6
  • CSS
  • 框架
  • Node
  • 服务
  • 其他
自我介绍
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前端

  • 后端及运维

    • 服务
    • GMP模型
      • 餐馆
      • 厨师
      • 菜品
    • MySQL调优
    • centos7部署nacos
    • consul单台机器部署,注册外网服务健康检查
    • centos7安装ES
    • MySQL底层
    • centos7安装rabbitmq
    • docker部署redis
    • 平常常用命令
    • MySQL调优
  • 年终总结

  • 个人博客
  • 后端及运维
刘某
2024-07-30
目录

GMP模型原创

@TOC 探索golang的GMP模型以及线程进程、协程

我们把国家看成一个计算机,我有一个餐馆,该餐馆就是为一个进程,餐馆内的厨师就是一个线程,每位厨师都需要完成指定任务,有个客户点了一桌菜,厨师要完成这个客户的任务,将每个菜都列举出来,并且过程都想清楚了,等待厨师执行,每个过程认为都是一个协程

# GMP模型

  • G(Goroutine) 定义:Goroutine 是 Go 语言中轻量级线程的概念,它由 Go 运行时环境(runtime)管理。 特点:Goroutine 是并发执行的基本单位,相比传统线程更轻量级,可以高效地处理大量的并发任务。 使用:通过关键字 go 可以创建一个 Goroutine,让函数在一个新的 Goroutine 中并发执行。
  • M(Machine) 定义:M 是 Go 语言运行时系统(runtime system)中的一个概念,负责管理和执行 Goroutine。 特点:M 直接映射到操作系统线程,每个 M 对应一个操作系统线程,负责调度执行 Goroutine。 作用:M 负责将 Goroutine 分配给操作系统线程执行,并处理 Goroutine 的调度和管理。
  • P(Processor) 定义:P 是 Go 运行时系统中的调度上下文(scheduling context),用于调度 Goroutine 在 M 上执行。 特点:P 负责管理一组 Goroutine 队列,决定哪些 Goroutine 应该运行在哪个 M 上。 作用:P 负责 Goroutine 的调度、管理和执行,保证 Goroutine 能够有效地并发执行。

# 进程、线程、协程

# 举例子

# 餐馆

餐馆被视作为进程,在 GMP 模型中,可以将整个餐馆看作一个进程(P)。进程负责管理整个执行过程,并分配任务给线程(M)执行。

# 厨师

厨师作为线程:每位厨师可以对应到 M(machine),负责执行具体的任务。每个厨师(M)都可以同时处理多个菜(协程)。

# 菜品

每道菜品可以视为一个独立的任务(Goroutine,G)。厨师(M)可以并发地处理多个菜品任务(G),烹饪流程作为协程的执行过程:每道菜的制作过程可以被分解为不同的步骤,每个步骤可以被看作是一个协程(G)。厨师(M)可以切换同时执行这些步骤协程,实现高效的任务处理

#GoLang
上次更新: 2024/07/30, 22:53:10
服务
MySQL调优

← 服务 MySQL调优→

最近更新
01
MySQL调优 原创
08-04
02
MySQL底层 原创
07-30
03
consul单台机器部署,注册外网服务健康检查 原创
07-30
更多文章>
Theme by Vdoing | Copyright © 2019-2024 执迷 | 闽ICP备2022018045号 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式