Python-并发、并行、协成的简易理解

1、什么是并发,为什么要对接口进行并发测试

什么是并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行(在一个CPU上切换处理事务)

为什么要对接口进行并发测试:要验证服务端是否对接口进行加锁。

2、代码为什么要加锁

(1)防止并发后数据混乱
(2)例如:同一段程序a=2,分别两个人同时读取a,取出来的数据都是2,但是两个都加1,此时加锁有a=4,如果不加锁,如数据同时对a进行加1,那么a=3是错误的。

3、什么是并行

什么是并行:当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。

4、并发与并行的区别

(1)并发,指的是多个事情,在极短的时间段内切换进行。(如20人只有一个咖啡机排成两排交叉进行)
(2)并行,指的是多个事情,在同一时间点上同时进行。(如20人有两个咖啡机排成两排同时进行)

5、进程、线程、协成是并行还是并发

(1)多进程之间相互独立,在运行的时候是并行类型。
(2)多线程是在极短的时间内切换进行,在单个CPU进行切换,所以多线程是并发类型。
(3)多协成是在线程里面,所以协成与线程原理一样,是在线程里面切换执行,所以也是并发类型。

其实总结来说,是取决于CPU的核心数
如果在运行的任务数等于CPU的核心数,最理想的情况,所有CPU都能执行自己的任务,那么在同一时间就有CPU核心数个数的任务在执行,这是并行

如果在运行的任务数大于CPU的核心数,那肯定会有多余的任务得不到CPU执行,CPU就会把这些任务切换运行,就是分时算法,分别给每个任务分配时间段,每个任务运行时间超过分配的时间段,就切换下一个任务执行,这叫并发

猜你喜欢

转载自blog.csdn.net/zhouzongxin94/article/details/122966906