Rumah  >  Artikel  >  pembangunan bahagian belakang  >  python中多线程与多进程的区别

python中多线程与多进程的区别

清浅
清浅asal
2019-04-08 11:20:275517semak imbas

Python中多进程与多线程的区别有:线程需要在进程中执行,一个进程可包含多个线程;进程可共享同个地址空间而进程共享物理地址,线程创建简单,进程需要对父进程克隆等等

今天将要分享的是Python中多进程与多线程的相关知识及区别,接下来将在文章中具体介绍,具有一定的参考价值,希望对大家有所帮助

python中多线程与多进程的区别

【推荐课程:Python教程

线程的概念:

线程是操作系统中进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程可以有多个线程,每条线程可以同时执行不同的任务。一个线程可以看作一个cpu执行时所需要的一串指令

多线程 

在Python的标准库中提供了两个模块:_thread和threading,_thread是低级模块不支持守护线程,当主线程退出时,所有子线程都会被强行退出。而threading是高级模块,用于对_thread进行了封装支持守护线程。在大多数情况下我们只需要使用threading这个高级模块即可。

python中多线程与多进程的区别

进程的概念:

进程指的是一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调用的独立单位。也就是每一个应用程序都有一个自己的进程。进程在启动时都会最先产生一个线程,这个线程被称为主线程,然后再有主线程创建其他子线程

多进程:

多进程是multiprocessing模块提供远程与本地的并发,在一个multiprocessing库的使用场景下,所有的子进程都是由一个父进程启动来的,这个父进程成为madter进程,它会管理一系列的对象状态,一旦这个进程退出,子进程很可能处于一个不稳定的状态,所以这个父进程尽量要少做事来保持其稳定性

python中多线程与多进程的区别

线程与进程的区别

(1)线程必须在某个进程中执行。一个进程可包含多个线程,并且只有一个主线程。

(2)多线程共享同个地址空间、打开的文件以及其他资源。而多进程共享物理内存、磁盘、打印机以及其他资源。

(3)线程几乎不占资源,系统开销少,切换速度快,而且同个进程中的多个线程可以实现数据共享,而进程之间是不可共享的

(4)新线程的创建很简单而新进程的创建需要对父进程进行克隆

(5)一个线程可以控制和操作同一进程里的其他线程;但是进程只能操作子进程

总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。

Atas ialah kandungan terperinci python中多线程与多进程的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Python 2.7与Python 3.7区别Artikel seterusnya:Python控制流之continue 语句