python(并发与并行,同步和异步,阻塞与非阻塞)

1、并行

并行是指同时进行多个任务,各个任务在不同的处理单元上独立执行。例如,在具有多个处理器或多个计算核心的计算机上,可以同时执行多个任务,每个任务在一个处理单元上并行执行。并行处理可以显著提高任务的处理速度。在并行处理中,任务之间可以是独立的,也可以有某些依赖关系。

在这里插入图片描述

2、并发

并发是指在一段时间内执行多个任务,每个任务在一段时间内交替执行,通过时间片轮转或者其他调度算法,每个任务都能获得一定的执行时间。在并发处理中,任务之间可以有相互关联和相互影响,它们可以共享资源或相互通信。

在这里插入图片描述

 3、并发 并行的好处

  1. 提高系统性能:并行和并发技术可以同时执行多个任务,充分利用系统资源,提高系统的整体性能和吞吐量。通过并行处理,可以加速任务的执行,减少等待时间,提高计算速度。

  2. 实现任务的分解和模块化:并行和并发技术使任务分解和模块化变得更加容易。通过将大型任务分解为多个并行或并发的子任务,可以更好地管理和组织复杂的系统,提高代码的可维护性和可扩展性。

  3. 提高资源利用率:并行和并发处理可以同时利用多个处理单元或线程来执行任务,从而提高系统资源的利用率。充分利用硬件资源可以更好地满足需求,并减少资源的浪费。

4、同步

同步是指任务按照顺序依次执行,每个任务完成后才能执行下一个任务。在同步任务中,调用者会阻塞等待每个任务的完成,直到结果返回或超时。这种方式下,程序的流程会按照预定的顺序进行,任务之间存在依赖关系。

5、异步

异步是指任务提交后立即返回,不等待任务完成,而是继续执行后面的任务。在异步任务中,调用者不会阻塞等待任务的完成,而是通过回调函数、事件通知或者其他机制来处理任务的完成和结果返回。这种方式下,任务可以并发执行,无需等待前一个任务完成。

6、同步 异步的区别

  • 同步任务按照顺序依次执行,任务之间存在依赖关系,需要等待每个任务完成后才能执行下一个任务。
  • 异步任务提交后立即返回,不等待任务完成,可以继续执行后续任务,任务可以并发执行。

 7、阻塞

阻塞是指任务调用者在执行一个任务时会被阻塞,等待任务完成后才能继续执行后续操作。在阻塞方式下,调用者会一直等待任务的完成或结果的返回,无法执行其他操作。这种方式下任务执行时间长短不确定,调用者需要主动等待。

8、非阻塞

非阻塞是指任务调用者在执行一个任务时不会被阻塞,可以立即返回并继续执行后续操作。在非阻塞方式下,调用者不会一直等待任务的完成或结果的返回,而是通过轮询或回调等方式来获取任务执行的状态或结果。这种方式下任务执行时间长短是不影响调用者执行的。

9、阻塞 非阻塞的区别

  • 阻塞方式下,调用者在执行任务期间被阻塞,无法执行其他操作,需要主动等待任务的完成或结果的返回。
  • 非阻塞方式下,调用者在执行任务期间不被阻塞,可以立即返回并继续执行后续操作,通过轮询或回调等方式来获取任务执行的状态或结果。

10、进程 线程

进程(Process)和线程(Thread)是操作系统中用于执行任务的两个基本概念。

进程是指系统中运行的一个程序的实例。每个进程都有独立的内存空间和资源,可以包含多个线程。进程之间相互独立,各自拥有自己的地址空间、文件描述符、打开的文件等。进程是资源分配的基本单位,可以让多个任务同时执行,实现并发处理。

线程是进程中的一个执行单元。一个进程可以包含多个线程,这些线程共享进程的内存空间和资源。线程拥有独立的栈空间和程序计数器,但共享进程的全局变量、堆和文件等。多线程可以在同一进程内并发执行,提高程序的效率和响应能力。

区别:

  • 进程是程序的实例,具有独立的内存空间和资源,进程之间相互独立。
  • 线程是进程中的执行单元,多个线程可以共享进程的内存空间和资源,线程之间可以并发执行。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值