字节一面:go协程相较于线程,在哪些方面更轻量级?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1072个文字,预计阅读时间需要5分钟。
1.+ Linux系统整体分为用户态和内核态,那内核态究竟是什么呢?本质上我们所说的内核态,是一种特殊的软件程序,它特别在何处?统计算法中。
1. 用户态和内核态Linux整个体系分为用户态和内核态(或者叫用户空间和内核空间), 那内核态究竟是什么呢?
本质上我们所说的内核态, 它是一种特殊的软件程序,特殊在哪?
统筹计算机的硬件资源,例如协调CPU资源、分配内存资源、并且提供稳定的环境供应用程序运行。
- 线程是cpu调度的基本单位,进程是资源占有的基本单位。
- 因为线程中的代码是在用户态运行,而线程的调度是在内核态,所以线程切换会触发用户态和内核态的切换。
- 线程上下文切换的代价是高昂的:上下文切换的延迟取决于不同的因素,大概是50到100 ns左右,考虑到硬件平均在每个核心上每ns执行12条指令,那么一次上下文切换可能会花费600到1200条指令的延迟时间。
本文共计1072个文字,预计阅读时间需要5分钟。
1.+ Linux系统整体分为用户态和内核态,那内核态究竟是什么呢?本质上我们所说的内核态,是一种特殊的软件程序,它特别在何处?统计算法中。
1. 用户态和内核态Linux整个体系分为用户态和内核态(或者叫用户空间和内核空间), 那内核态究竟是什么呢?
本质上我们所说的内核态, 它是一种特殊的软件程序,特殊在哪?
统筹计算机的硬件资源,例如协调CPU资源、分配内存资源、并且提供稳定的环境供应用程序运行。
- 线程是cpu调度的基本单位,进程是资源占有的基本单位。
- 因为线程中的代码是在用户态运行,而线程的调度是在内核态,所以线程切换会触发用户态和内核态的切换。
- 线程上下文切换的代价是高昂的:上下文切换的延迟取决于不同的因素,大概是50到100 ns左右,考虑到硬件平均在每个核心上每ns执行12条指令,那么一次上下文切换可能会花费600到1200条指令的延迟时间。

