python--进程与线程的区别以及并行与并发的区别

我们在了解进程与线程之间的区别之前要先知道

什么是进程?什么是线程?

进程:一个正在运行的程序或者软件就是一个进程,它是操作系统进行资源分配的基本单位,也就是说每启动一个进程,操作系统都会给其分配一定的运行资源(内存资源)保证进程的运行。

线程:线程是进程中执行代码的一个分支,每个执行分支(线程)要想工作执行代码需要cpu进行调度 ,也就是说线程是cpu调度的基本单位,每个进程至少都有一个线程,而这个线程就是我们通常说的主线程。

进程与线程我们从三个方向来对比

一. 关系对比
  1. 线程是依附在进程里面的,没有进程就没有线程
  2. 一个进程默认提供一个线程,进程可以创建多个线程
二. 区别对比
  1. 进程之间不共享全局变量
  2. 线程之间共享全局变量,但要注意资源竞争问题,解决办法:互斥锁或者线程同步
  3. 创建进程的资源开销要比创建线程的资源开销要大
  4. 进程是操作系统资源分配的基本单位,线程是CPU调度的基本单位
  5. 线程不能够独立执行,必须依存在进程中
  6. 多进程开发比单进程多线程开发稳定性要强
三. 优缺点对比
  • 进程优缺点:
    优点: 可以用多核
    缺点: 资源开销大

  • 线程优缺点:
    优点: 资源开销小
    缺点: 不能使用多核

那么什么是并发和并行呢?

并发:不同的代码块交替执行,它是单核cpu处理多任务

并行: 不同的代码块同时执行,它是多核cpu处理多任务

举个简单的例子
并行就相当于你去车站买票,这时候有两个人要买票,刚好有两个窗口在售票,那这两个人就一人在一个窗口去买票.两人之间互不影响对吧,至于谁先买完票,谁后买完票,那就看售票员的操作效率了对吧,你也管不了,这就是并行,cpu处理多任务的时候,谁先执行,谁后执行,我们决定不了,那是cpu的事情,那个售票员呢就相当于是cpu,而买票的人呢就是要执行的任务.

而并发呢,就相当于现在有两个人买票,但只有一个窗口,那两个人就要排队买票.我得等第一个人买完票了,我才能去买票.

以上就是我的总结.感谢大家参考并评论提出意见或建议!!!

where there is a will,there is a way!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值