Python进程和线程的概念理解

在这里插入图片描述

市面上常用的操作系统都支持同时运行多个任务,每个任务通常是一个程序,每一个运行中的程序就是一个进程,即进程是应用程序的执行示例.即操作系统几乎都支持多进程并发执行。

这里提一下并发和并行概念:
并发和并行是两个概念,并行是指同一时刻有多条指令在多个处理器上同时执行;并发是指同一时刻只能有一条指令执行,但是多个进程指令被快速轮动执行,使得在宏观上具有多个进程同时执行的效果。

例如:
在电脑上一边看电影,一边听歌,一边聊天,除此之外,每台电脑在运行时还有大量底层的支撑性程序在运行,这些进程看上去像是在同时工作。但事实上对于一个CPU而言,在某个时间点它只能执行一个程序。也就是说只能运行一个进程,CPU不断在这些进程之间轮换执行。那么为什么平时我们感觉不到呢?
这是因为CPU相对来说执行的速度太快了,如果启动的程序足够多还是能感觉程序的运行速度下降了,类似于我们平时说的网络比较卡。所有,虽然CPU在多个进行之间轮换执行,但是用户的感觉是多个进程同时进行。

线程是进程的组成部分,一个进程可以创建多个线程。在多个线程中会有一个主线程来完成整个进程从开始到结束的全部操作。而其他线程会在主线程的运行过程中被创建和退出。

当进程被创建后其中主线程就被创建了,对于很多应用程序来说通常一个主线程但也可以在进程内创建多个顺序执行流,这些执行流就是线程。
注:当一个进程中只有一个线程时,叫做单线程这条单线程就是主线程,一个进程默认是有一个主线程的。超过一个线程就叫做多线程

每个线程都有自己的父进程,且它可以拥有自己的堆栈,程序计数器以及局部变量。但没有系统资源,因为它和父进程的其他线程共享该进程所拥有的全部资源。线程可以完成一定的任务,可以与其它线程共享父进程中的全局变量即部分环境,线程之间互相协同完成进程所要完成的任务。

线程是独立运行的,它并不知道进程中是否还有其他线程存在。线程的运行是抢占式的。当前运行的线程任何时候都可能挂起,以便其它线程运行(多线程是并发执行的,同一时刻主程序只允许有一个线程执行。这是GIL锁的缘故,详见GIL)

多线程存在于一个应用程序中,让一个应用程序可以有多个执行部分同时执行,但操作系统无须将多个线程看作多个独立的应用,对多线程实现调度和管理以及资源分配,线程的调度和管理由进程本身负责完成。

进程和线程的关系:操作系统可以同时执行多个任务,每一个任务就是一个进程,进程也同时执行多个任务,每个任务就是一个线程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

季布,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值