文章 2023-10-21 来自:开发者社区

Go 协程为什么比进程和线程占用的系统资源低?

01 介绍进程是一个可执行程序在运行时的一块独立的虚拟内存[1]空间,Linux 给每个进程分配一个虚拟内存空间,包括栈空间、未使用内存、堆空间、BSS、DATA、TEXT 等。线程可以理解为轻量级进程,多个线程“寄生”在一个进程中,每个线程有独立的栈空间,其它虚拟内存空间,多个线程共享,所以线程之间通信比较简单,也就是说线程之间可以通过共享内存通信。进程和线程都是 CPU 的一个执行单元,在内....

文章 2022-04-24 来自:开发者社区

字节一面:go的协程比线程轻量,体现在哪?

01用户态和内核态   Linux整个体系分为用户态和内核态(或者叫用户空间和内核空间), 那内核态究竟是什么呢?本质上我们所说的内核态, 它是一种特殊的软件程序,特殊在哪?统筹计算机的硬件资源,例如协调CPU资源、分配内存资源、并且提供稳定的环境供应用程序运行。应用程序系统调用坠入内核态。02为什么线程切换会导致用户态和内核态的切换?•线程是cpu调度的基本单位,进程是资源占有的基本....

字节一面:go的协程比线程轻量,体现在哪?

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注