Python并发编程基础概念
目录
进程和程序
同步和一步
阻塞和非阻塞
并发、并行和串行
进程和程序:
- 程序是一组指令和数据的集合,以特定的编程语言编写,用于实现特定的功能。
- 进程是正在运行的程序的实例。它是计算机分配资源的基本单位,具有自己的内存空间、程序计数器、寄存器和栈等。例如任务管理器中的程序都是进程。
一个程序可以通过创建进程来在计算机上执行。每个进程都是相互独立的,拥有自己的执行环境和资源。操作系统负责管理进程的创建、调度和终止,并为每个进程分配适当的资源,如内存和 CPU 时间片。
同步和异步:
- 同步操作指的是在执行一个操作时,必须等待该操作完成后才能继续执行后续代码。
- 异步操作指的是可以在操作执行的同时进行其他任务,无需等待操作完成。
在同步操作中,调用者会一直等待被调用的函数返回结果。
而在异步操作中,调用者可以继续执行其他任务,通过回调函数或事件处理机制获取异步操作的结果。
阻塞和非阻塞:
- 阻塞是指在执行一个操作时,调用者被挂起并等待操作完成后才能继续执行后续代码。
- 非阻塞是指在执行一个操作时,调用者不会被挂起,可以立即返回并继续执行后续代码。
在阻塞操作中,调用者会一直等待被调用的函数返回结果,期间无法执行其他任务。而在非阻塞操作中,调用者可以立即返回,并通过轮询或回调等方式查询操作的状态或结果。
并发、并行和串行:
- 并发指的是多个任务在同一时间段内交替执行,共享系统资源。
- 并行指的是多个任务同时进行,每个任务在独立的处理器核心上执行。
- 串行指的是按照严格的顺序依次执行任务,一个任务完成后再执行下一个任务。
并发和并行都涉及多个任务的执行,但并发是指任务可以交替执行,共享系统资源,而并行是指任务同时进行,每个任务在独立的处理器核心上执行。串行则是按照严格的顺序依次执行任务。