多任务 Day01

1.多任务的执行方式

在 Python 中,多任务可以通过并发和并行两种方式来实现,

并发(Concurrency):

定义:并发是指在同一时间段内,处理多个任务的能力。在并发执行的情况下,多个任务会交替执行,看上去像是同时进行,但实际上在任何一个时刻,处理器都只在处理一个任务。这就好像一个人在同一时间内要处理多个事情,比如一边看电视一边吃饭一边听音乐,通过快速地在这些事情之间切换注意力,给人一种同时在做几件事的感觉。

并行(Parallelism):

  • 定义:并行是指在同一时刻,真正地同时处理多个任务。这需要有多个处理器或多核处理器,每个任务可以在不同的处理器或核心上同时运行。就像有多个工人同时在不同的地方工作,各自做着不同的任务,互不干扰,同时进行。

 2.进程

 

在 Python 中,进程默认情况下是不共享全局变量的。:

原理

每个进程都有自己独立的地址空间,这意味着它们各自有一套独立的变量副本。相当于子进程是主进程的拷贝。当一个进程对全局变量进行修改时,这种修改只在该进程内部可见,不会影响到其他进程中的同名变量。操作系统会负责为每个进程分配和管理独立的内存空间,以确保进程之间的独立性和稳定性,避免一个进程的数据被其他进程意外修改,从而提高系统的可靠性和安全性。

3.线程 

线程之间共享同一个全局变量因此会存在资源竞争问题:

解决方法可以使用互斥锁来解决

进程和线程对比:(1)线程依附于进程,一个进程默认是一个线程但也可以多个线程,这时因为一个进程对应一个cpu,所以这些线程是并发执行的(排队执行)(2)进程不共享全局变量,线程共享全局变量(3)进程资源开销大,线程小,进程是资源分配的基本单位,线程是cpu调度基本单位 

优缺点:进程可以多核,但资源开销大;线程相反

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值