首页 > 编程 > Python > 正文

Python中进程和线程的区别详解

2020-02-16 10:31:47
字体:
来源:转载
供稿:网友

Num01–>线程

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

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

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

Num02–>进程

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

进程有以下三部分组成:

1,程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成。
2,数据集:数据集则是程序在执行过程中需要的资源,比如图片、音视频、文件等。
3,进程控制块:进程控制块是用来记录进程的外部特征,描述进程的执行变化过程,系统可以用它来控制和管理进程,它是系统感知进程存在的唯一标记。

Num03–>进程和线程的区别:

1、运行方式不同:

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

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

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

2,关系

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

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

3,速度

启动线程比启动进程快。

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

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

4,创建

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

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

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

5,交互

同一个进程里的线程之间可以直接访问。

两个进程想通信必须通过一个中间代理来实现。

Num04–>几个常见的概念

1,什么的并发和并行?

并发:微观上CPU轮流执行,宏观上用户看到同时执行。因为cpu切换任务非常快。

并行:是指系统真正具有同时处理多个任务(动作)的能力。

2,同步、异步和轮询的区别?

同步任务:B一直等着A,等A完成之后,B再执行任务。(打电话案例)

轮询任务:B没有一直等待A,B过一会来问一下A,过一会问下A

异步任务:B不需要一直等着A, B先做其他事情,等A完成后A通知B。(发短信案例)

Num05–>进程和线程的优缺点比较

首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Worker负责执行任务,因此,多任务环境下,通常是一个Master,多个Worker。

如果用多进程实现Master-Worker,主进程就是Master,其他进程就是Worker。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表