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

进程与线程

文章目录

  • 什么是线程
  • 线程与进程的关系
  • 线程与进程的区别

什么是线程

上一篇文章中我们介绍了什么进程,我们把进程比作一个工厂,那么线程就是工厂中的流水线。引入进程的目的就是为了实现多个任务并发执行,但是如果频繁的创建销毁进程,资源消耗比较高,成本比较高,所以我们引入了线程,线程相比于进程更加轻量级。

什么是多进程,什么是多线程呢?我们举个例子来向大家说明:
现在有很多工作,需要找工厂完成工作,如果让一家工厂来完成任务效率很低,如何提高效率呢?

很多人就想到了找两家工厂一起完成效率不就高了嘛,这样的思想是使用多进程来完成工作,提高了效率但是多找了一个工厂加大了消耗,而且两个工厂之间并不能知道对方完成了多少活。
在这里插入图片描述

我们还可以,在一个工厂中多增加两条生产线,此时效率也提高了,同时并没有增加工厂,两条生产线在同一个工厂还能看见对方完成了多少活,这样的思想我们称为多线程
在这里插入图片描述

线程与进程的关系

首先最重要的一点就是:进程包含线程,一个进程中可以有一个线程,或者多个线程,每个线程之间都是一个独立的执行流,多个线程之间,也是并发运行的,他们可以在多个CPU上同时运行,也可以在一个CPU上通过快速切换进行运行。
进程与线程都是为了可以并发的执行任务,只不过使用的场景并不相同:

同一个进程,内部想要完成多组任务,此时使用多线程,例如我们打开微信,可以聊天可以支付等。(更高效,节省资源,但是一个线程挂了,可能带走整个进程)
多个进程之间完成多组任务,此时就是多进程了例如我们同时打开QQ和微信。(多进程的隔离性更高,互不影响,一个进程挂了并不会带走其他进程)

一个进程可能包含多个线程,那这些线程所消耗的资源加在一起不会超过两个进程嘛?其实一个进程中的这些线程共用一份系统资源,只有在进程启动时,创建第一个线程的时候,需要申请系统资源,第一个线程创建完毕之后,之后的进程不会在申请资源了

线程与进程的区别

我们总结一下进程与线程的区别:

1、首先要明确的是,进程包含线程。
2、进程有自己的独立的内存空间和文件描述符表,而同一个进程中的多个线程之间,共享一份地址空间和文件描述符表。
3、进程是操作系统资源分配的基本单位,而线程是操作系统调度执行的基本单位
4、进程之间具有独立性,一个进程挂了不会带走其他进程,而同一个进程中的多个线程之间,一个线程挂了可能会把整个程序带走,影响到其他线程。

http://www.lryc.cn/news/45611.html

相关文章:

  • 骑友,怎么挑选适合自己的赛事
  • 【Java 数据结构与算法】-遍历Map和Set的方式
  • 组件、套件、 中间件、插件
  • 自动化工具 pytest 内核测试平台落地初体验
  • Python 自动化指南(繁琐工作自动化)第二版:四、列表
  • 大数据领域的发展及其对现实世界的价值
  • 几种常见的架构模式
  • flutter安装各种问题汇总
  • 网络传输层
  • linux内核启动分析(二)
  • 『EasyNotice』.NET开源消息通知组件——快速实现邮件/钉钉告警通知
  • JVM垃圾回收算法
  • 怎么看待ChatGPT封号这件事呢?
  • 八、交换技术原理
  • 什么是DHCP?DHCP有什么用?(中科三方)
  • 算法设计-二分
  • 隧道技术基础
  • 卡尔曼滤波浅析
  • Eolink Apikit 创建/生成 API 文档
  • 2023年上半年系统分析师备考法则
  • 【人工智能】—约束传播、弧约束、问题结果与问题分解、局部搜索CSP
  • Java设计模式面试专题
  • 文件(下)——“C”
  • bugku 渗透靶场3
  • NER 任务以及联合提槽任务
  • scala函数式编程
  • 网吧2023:热闹回来了,电竞战歌起
  • 代码随想录算法训练营第五十九天|503.下一个更大元素II、42. 接雨水
  • 9、简单功能分析
  • 如何发送和接收参数?五种参数传递方法