Golang GMP 模型
2023-12-21 4 min read golang
前言 在 golang 的并发编程中,gmp 是一个重要的概念,它代表了 goroutine、m(线程)和 p(调度器)。 这个强大的三位一体的并发模型使得 golang 在处理并发任务时非常高效和灵活。 通过 gmp 的组合,golang 实现了一种高效的并发模型。 它充分利用了多核处理器的优势,并通过轻量级的 goroutine 实现了高并发的编程模式。 但是gpm到底是怎么工作的呢?今天这篇文章就为您解开gpm的神秘面纱。 调度器由来 单进程系统 早期的计算机都是单进程操作系统,各个进程之间都是顺序执行,也就是进程a执行完了才能执行进程b。 「对于cpu来说,进程和线程是一样的,这里我们就不讨论进程和线程的区别了」 存在的问题 单一执行流程,计算机只能一个任务一个任务的处理 如果进程a阻塞,会带来很多cpu浪费的时间 多进程/线程操作系统 基于以上的问题,于是就出现了多进程/线程操作系统...