线程是什么(几核几线程什么意思)

线程是什么(几核几线程什么意思)

首页维修大全生活更新时间:2022-04-12 07:00:52
前言

这将是一个系列,一个关于进程、线程和 协程的系列。

主要用于:回顾和复习以往所学的知识 以及 希望这点经验能够帮助正在学习编程的你

最初的几章会讲到一些相关的计算机理论知识,可能相对枯燥。但这是基础,是理解后面程序必备的概念。如果有疑惑,可以加微信讨论,咱们一起进步。

线程的定义

线程(thread)是操作系统能够进行运算的最小单位。同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。

线程的实现方式

根据管理线程所发生的位置,我们将线程分为以下三类:

上下文切换

$ sar -w 1 10 Linux 4.15.0-153-generic (ubuntu-bionic) 08/09/21 _x86_64_ (2 CPU) 15:26:02 proc/s cswch/s 15:26:03 0.00 65892.00 15:26:04 0.00 248868.00 15:26:05 0.00 368564.00 15:26:06 0.00 391488.00 15:26:07 0.00 349058.00 15:26:08 0.00 353089.00 15:26:09 0.00 381352.00 15:26:10 0.00 379659.00 15:26:11 0.00 374822.00 15:26:12 0.00 129233.00 Average: 0.00 304202.50 # proc/s 每秒创建的任务总数。 # cswch/s 每秒上下文切换的总数。

我这是2核CPU,据统计目前主流的CPU每次上下文切换要花掉2~5微秒。我们取中位数3微秒。我们来计算一下每秒单核CPU花在上下文切换中的时间:3*304202/2/1000=0.456s。可以看出,频繁的上下文切换对性能的影响是巨大的。

由于同一个进程中的多个线程是共享进程资源的,所以从这个角度我们又把上下文切换分成两类:

上图绿色的部分代表需要切换的上下文,我们可以看出,线程切换的开销远小于进程切换。

今天线程的理论只是就讲到这里,接下来我们将以Python为主要编程语言,带大家进行 多线程实践与性能分析,相对于干燥的理论知识,将会变得比较有趣。



,

大家还看了
也许喜欢
更多栏目

© 2021 3dmxku.com,All Rights Reserved.