Python如何实现高效的并发编程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5158个文字,预计阅读时间需要21分钟。
基础概念:程序、进程和线程程序:由代码构成的执行单元,仅是代码堆栈。进程:程序的运行过程,是对正在运行程序的抽象。线程:进程的资源单元,每个进程有一个或多个线程。每个线程都拥有独立的堆栈空间。
基础概念
一、进程、程序和线程
- 程序:程序只是一堆代码而已
- 进程:指的是程序的运行过程,是对正在运行程序的一个抽象。进程是一个资源单位
- 线程:每个进程有一个地址空间,而且默认就有一个控制线程。线程才是cpu上的执行单位
二、并发与并行
无论是并行还是并发,在用户看来都是‘同时‘运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务
- 并发:是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发,(并行也属于并发)
- 并行:同时运行,只有具备多个cpu才能实现并行
三、同步与异步
- 同步:发出一个功能调用时,在没有得到结果之前,该调用就不会返回。
- 异步:异步功能调用发出后,不会等返回,而是继续往下执行当,当该异步功能完成后,通过状态、通知或回调函数来通知调用者。
四、阻塞与非阻塞
- 阻塞:调用结果返回之前,当前线程会被挂起(如遇到io操作)。函数只有在得到结果之后才会将阻塞的线程激活。
- 非阻塞:在不能立刻得到结果之前也会立刻返回,同时该函数不会阻塞当前线程。
本文共计5158个文字,预计阅读时间需要21分钟。
基础概念:程序、进程和线程程序:由代码构成的执行单元,仅是代码堆栈。进程:程序的运行过程,是对正在运行程序的抽象。线程:进程的资源单元,每个进程有一个或多个线程。每个线程都拥有独立的堆栈空间。
基础概念
一、进程、程序和线程
- 程序:程序只是一堆代码而已
- 进程:指的是程序的运行过程,是对正在运行程序的一个抽象。进程是一个资源单位
- 线程:每个进程有一个地址空间,而且默认就有一个控制线程。线程才是cpu上的执行单位
二、并发与并行
无论是并行还是并发,在用户看来都是‘同时‘运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务
- 并发:是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发,(并行也属于并发)
- 并行:同时运行,只有具备多个cpu才能实现并行
三、同步与异步
- 同步:发出一个功能调用时,在没有得到结果之前,该调用就不会返回。
- 异步:异步功能调用发出后,不会等返回,而是继续往下执行当,当该异步功能完成后,通过状态、通知或回调函数来通知调用者。
四、阻塞与非阻塞
- 阻塞:调用结果返回之前,当前线程会被挂起(如遇到io操作)。函数只有在得到结果之后才会将阻塞的线程激活。
- 非阻塞:在不能立刻得到结果之前也会立刻返回,同时该函数不会阻塞当前线程。

