Python中的进程与线程(笔记摘录+理解)

什么是进程(Process):

普通的解释就是,进程是程序的一次执行,而什么是线程(Thread),线程可以理解为进程中的执行的一段程序片段。

在一个多任务环境中下面的概念可以帮助我们理解两者间的差别:进程间是独立的,这表现在内存空间,上下文环境;线程运行在进程空间内。 一般来讲(不使用特殊技术)进程是无法突破进程边界存取其他进程内的存储空间;而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间。同一进程中的两段代码不能够同时执行,除非引入线程。线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。线程占用的资源要少于进程所占用的资源。进程和线程都可以有优先级。在线程系统中进程也是一个线程。可以将进程理解为一个程序的第一个线程。

线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:

(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;

(2)进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源;

(3)线程是处理器调度的基本单位,但进程不是;

(4)二者均可并发执行。

 

 

线程:

线程是操作系统中能够执行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。

一个线程指的是进程中一个单一顺序的控制流。

一个进程中可以并发多条线程,每条线程并行执行不同的任务。

进程:

进程就是一个程序在一个数据集上的一次动态执行过程。

进程有以下三部分组成:

1.程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成。

2.数据集:数据集则是程序在执行过程中需要的资源,比如图片、音视频、文件等。

3.进程控制块:进程控制块是用来记录进程的外部特征,描述进程的执行变化过程,系统可以用它来控制和管理进程,它是系统感知进程存在的唯一标记。

进程和线程的区别:

1.运行方式不同

进程不能单独运行,它只是资源的集合。

进程要操作CPU,必须先创建一个线程。

所有在同一个进程里的线程,是同享同一块进程所占的内存空间。

2.关系

进程中第一个线程是主线程,主线程可以创建其他线程;其他线程也可以创建线程;线程之间是平等的。

进程有父进程和子进程,独立的内存空间,唯一的标识符:pid。

3.启动线程比启动进程快。

运行线程和运行进程速度上是一样的,没有可比性。

线程共享内存空间,进程的内存是独立的。

4.创建

父进程生成子进程,相当于复制一份内存空间,进程之间不能直接方位。

创建新线程很简单,创建新进程需要对父进程进行一次复制。

一个线程可以控制和操作同级线程里的其他线程,但是进程只能操作子进程。

5.交互

同一进程里的线程之间可以直接访问。两个进程想通信必须通过一个中间代理 来实现。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值