软件测试肖sir__多线程和多进程

软件测试肖sir__多线程和多进程

一、开发编程

1、进程

定义:是计算机资源分配的最小单元(进程未线程提供资源)理解:一个正在运行的程序

注意点:一个程序运行最少一个进程

2、线程

定义:是计算机中可以被cpu调度的最小单元(真正在工作)

3、协程

4、程序

定义:程序编写完运行称之为程序。正在运行的代码就是进程。

 

二、作用

并发:

1、引入并发,就是为了提升程序运行速度

程序提速方法:a、单线程串行  b、多线程并发 c、多cpu并行    d、多机器并行

 

 多线程:threading   (私来定)利用cpu和io可以同时执行得原理,让cpu一直等待i/o完成

多线程:multiprocessing ,利用多核cpu的能力,真正的并行执行任务

异步io:asyncin  在单线程利用cpu和io同事执行的原理,实现函数异步执行

使用lock多资源加锁,防止冲突访问;

使用queue实现不同线程/进程之间的通信,实现生成者-消费者模式

使用线程池pool/进程池pool,简化线程,进程的任务提交,等待结束,获取结果

使用subprocess启动外部程序的进程,并进行输入输出交互

 

2、提高测试技能,高薪之路

 

场景1:

1、一个网络爬虫,按顺序爬取花1小时,采用并发下载减少到20分钟

2、一个app得应用,优化每次打开页面需要3ms,采用异步并发提升到每次200毫秒

 

 

三、python3中实现多进程

(一)multiprocessing  模块

1、支持子进程、通信、共享数据

2、Process ([group [, target [, name [, args [. kwargs]]ll])    #是一个process类

 

 

方法:

a、is_alive()        如果运行,返回true      

b、join(【timeout】)等待 进程p终止 【】方括号,表示可有可无

c、run()  进程启动时运行的方法

d、start()  启动进程,

e、terminate()强制终止进程

(2)subprocess模块

 

案例:

 

 

 ========================================

join方法:

(1)在执行完在输出方法join

对比案例:

先执行完的代码:

 

 代码如下:‘join’  或join(时间)

 

 join后面接时间点,设置结束点

 

 

======================================

导入进程包 import multiprocessing
创建子进程并指定执行的任务sub_process =multiprocessing.Process (target=任务名)

启动进程执行任务sub_process.start()

传参数:

元组方式传参︰元组方式传参一定要和参数的顺序保持一致。
字典方式传参:字典方式传参字典中的key一定要和参数名保持一致。

 ======================================

二、获取进程编号的两种方式:

1.获取当前进程编号
os.getpid)

格式:

import   os
pid=os.getpid()
print(pid)

案例:

 

 


⒉获取当前父进程编号
os.getppid()

案例:

 

 3、获取父进程和子进程

 

 ===========================

多进程的注意点:

1、主进程会等待所有的子进程执行结束再结束

案例:

 

2、

posted @ 2022-06-22 21:58  xiaolehua  阅读(47)  评论(0编辑  收藏  举报