AP计算机科学A(APcomputer science A)复习备考攻略视频教程
43759 人在学
python线程概述
python多线程是什么意思?几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,所有运行中的任务都对应一个进程(Process)。即当一个程序进入内存运行时,即变成一个进程。进程就是处于运行过程中的程序,并且具有一定的独立功能。进程是系统进行资源分配调度的一个独立单位。而当一个程序运行时,内部可能包含多个顺序执流,每个顺序执行流就是一个线程。
python线程与进程
现代的操作系统都支持多进程的并发执行,但在具体的实现细节上可能因为硬件和操作系统的不同而采取不同的策略,常用的有共享式的多任务操作策略,抢占式的多任务操作策略(效率较高)。
多线程扩展了多进程的概念,使得同一个进程可以同时并发处理多个任务。线程也被称为轻量级进程,线程是进程的执行单元。线程在程序中是独立的、并发的执行流。当进程被初始化后,主线程就被创建了。对于大多数程序而言,通常仅需要一个主线程,但也可以在进程内创建多个顺序执行流,这些顺序执行流就是线程,每个线程都是独立的。线程是进程的组成部分。
python多线程与多进程
这样讲可能比较抽象,我们以CPU为工厂来举例。
计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。假定工厂的电力有限,一次只能供给一个车间使用,所以当一个车间开工的时候,其他车间都必须停工。这就代表单个CPU一次只能运行一个任务。
而进程就好比是工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。
一个车间里,可以有很多工人,他们通过合作完成一个任务,线程就好比是车间里的工人。
车间的空间是工人们共享的,所以一个进程可以包括多个线程,比如许多房间是每个工人都可以进出的。这就像是一个进程的内存空间是共享的,每个线程都可以使用这些共享内存。
可是,每间房间的大小不同,有些房间最多只能容纳一个人,比如厕所,里面有人的时候,其他人就不能进去了。这代表一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。
还有些房间,可以同时容纳n个人,比如厨房,如果人数大于n,多出来的人只能在外面等着。这好比某些内存区域,只能供给固定数目的线程使用。
所以综上所述:
多进程——允许多个任务同时进行
多线程——允许单个任务分成不同的部分运行
python多线程的优势
1、线程在程序中是独立的,并发的执行流,划分尺度小于进程,所以多线程程序的并发性高。
2、进程在执行过程中拥有独立的内存单元,而多个线程共享内存,可以极大地提高程序的运行效率。
3、线程比进程具有更高的性能。这是由于同一个进程中的线程都有共性,多个线程共享同一个进程的虚拟空间,可以很容易实现通信。操作系统在创建进程时,必须为该进程分配独立的内存空间,并分配大量的相关资源,但创建线程则简单得多。因此使用多线程来实现并发比使用多进程的性能要高的多。
通过上述讲解,相信你已经充分理解了多线程的含义,而Python 作为全球前三的编程语言之一,不是单纯地用底层操作系统调度方式,而是内置了多线程功能支持,从而简化了Python的多线程编程。
多线程作为Python学习中的重要知识点之一,需要同学们付出精力认真学习。