多语言展示
当前在线:245今日阅读:167今日分享:16

Python 线程进程 串行并行并发 同步异步 GIL锁

线程进程基本概念
工具/原料

Python3 Pycharm

方法/步骤
1

进程用户在操作系统中所作的每一件事都是通过进程实现的进程就是一个程序在一个数据集上的一次动态执行过程,进程一般由程序,数据集,进程控制块(状态保存)三部分组成进程与程序是有区别的,进程是动态的,程序是静态的,进程不是程序,虽然它由程序产生。程序需只是一个静态的命令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的,动态的,使用系统运行资源的程序,而一个程序可以启动多个进程。“ 我们在理解进程和程序的关系时,可以把他们想象成是戏剧和剧本的关系。一个程序可以对应多个进程,就像一个剧本可以拿来拍摄多部电视剧;但一个进程只能对应一个程序,就像一部电视剧只能使用一个剧本。剧本是静态的,而戏剧是动态的。”

2

线程线程是寄托在进程里面的,一个进程里面最少有一个主线程,线程是最小的执行单元,进程是最小的资源管理单元一个进程下开多个任务线程,每个线程处理一个任务,多个线程共享进程中的所有资源

3

进程/线程切换原则: 1.时间片切换 2.遇到IO操作切换 3.优先级切换

4

串行:  一个执行结束在执行另一个并行:  同一时刻运行多个任务,要求有多核并发:  相对的时间内处理多个任务,执行任务A没有执行完,在切换任务B,在切换任务C

5

同步:  同步是指一个进程在执行某个请求的时候,诺该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去异步:  异步是发完请求之后,什么时候返回信息没关系,程序会一直往下执行下去,什么时候返回给我我在处理

6

Python的线程跟别人的线程是有区别的Python 比别人多了一把锁GIL ,给每个进程加了一把GIL锁,加完锁同一时间内只能有一个线程出来被CPU执行,线程可以并发但是不能并行,相当于把多核的优势给浪费掉了

推荐信息