当前位置: 首页 > news >正文

线程和进程

线程和进程

一、线程和进程

线程是CPU调度和分派的基本单位。

进程对于操作系统来说就是一个任务。

听起来挺难懂的一句话,我们举一个实际例子:比如现在有一条需要被修的路,这个时候只有一个施工队要修它,假设是10天能修完;那么此时进程就是这条需要被修的路(任务),线程就是这一个施工队【单进程单线程】。

如果在修这条路的时候,来了两个施工队,各修一半,此时就是多线程【多个施工队】,单进程【一个任务】。那么好处也是显而易见的,多线程完成一个任务时间肯定低于10天,所以多线程就是省时间。

二、进程详述

换到我们电脑上来说,我们电脑上可以一边登陆QQ,一边听音乐,一边编辑Word等等,同时在执行多个任务,这个就是多进程。而我们的多核CPU就是用来控制进程的,比如六核CPU,可以同时控制六个进程,对于之前的单核CPU来说,这个该怎么控制呢?对于单核CPU来说,操作系统轮流让各个任务交替执行,任务1执行0.01秒,然后切换到任务2,任务2执行0.01秒,接着切换到任务3,执行0.01秒……就这样反复执行下去。由于我们的分辨速度远远达不到这个级别,所以并没有察觉(就像人类的眼睛无法分辨超过30帧的图像一样),整个切换过程我们完全分辨不出来。

但是六核的CPU显然也无法满足我们的需求,我们同时使用的任务极有可能超过六个,当超过的时候,任务的处理方式与单核CPU一致。

三、线程详述

当我们在听音乐的时候,【在音乐这个进程下】我们有可能还在干别的事情,比如搜索音乐,这样一个进程就有多个线程,对于我们这个比喻来说,拥有两个线程:(1)听音乐(2)搜索音乐。

同样,多个线程也是需要多核CPU,这样才是真正的多线程,如果只是单核CPU的话,也是只能不断地切换不同的线程来完成。

四、Python的进程与线程

对于Python来说,既支持多进程又支持多线程。

 

 

 

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何删除和重新安装IIS和Exchange
  • 认识生产者和消费者模式
  • 大型企业局域网安全解决方案
  • 如何理解内网和外网?
  • Netlogon 5774 5575 5781错误
  • 电脑网络之IP篇
  • MSExchangeAL 8144
  • 动态网页数据抓取
  • Selenium环境的配置
  • MSExchangeAL 8331
  • 老铁,了解一下Python吗?
  • Application Error 1000
  • 光学文字识别(OCR)
  • Microsoft Exchange Server 1000
  • 三、基础查询——MySQL数据库之查看列(1)
  • Angular 4.x 动态创建组件
  • bootstrap创建登录注册页面
  • DOM的那些事
  • JavaScript-Array类型
  • java中的hashCode
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Mac转Windows的拯救指南
  • python3 使用 asyncio 代替线程
  • React16时代,该用什么姿势写 React ?
  • React-flux杂记
  • Swift 中的尾递归和蹦床
  • ubuntu 下nginx安装 并支持https协议
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • webpack入门学习手记(二)
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 每天一个设计模式之命令模式
  • 深度学习在携程攻略社区的应用
  • 深入浅出webpack学习(1)--核心概念
  • 延迟脚本的方式
  • 用Canvas画一棵二叉树
  • 第二十章:异步和文件I/O.(二十三)
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​​​【收录 Hello 算法】9.4 小结
  • ​水经微图Web1.5.0版即将上线
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #APPINVENTOR学习记录
  • #前后端分离# 头条发布系统
  • (5)STL算法之复制
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (第27天)Oracle 数据泵转换分区表
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十)T检验-第一部分
  • (十八)Flink CEP 详解
  • (五)c52学习之旅-静态数码管
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .