python之多进程并发测试

python之多进程并发测试


一、进程是什么?

一个程序运行后,代码+用到的资源称为进程。
进程有四种状态:工作,就绪,执行,等待
进程:比如一个电脑可以同时启动多个软件
线程:比如一个QQ可以开多个窗口
定义不同:进程是系统分配资源的单位;而线程是进程的一个实体。
其实当我们需要用python进行性能测试的时候,使用线程和进程都不太合适。一般会用协程。协程的并发可以开到1万!

二、使用步骤

1.引入库

代码如下(示例):

from multiprocessing import Process
import os
a = 0


def work1():
    global a
    for i in range(100000):
        a += 1
    print("子进程号{}--work2------a:", os.getpid(), a)
    print('父进程id:',os.getppid())#获取当前进程号


def work2():
    global a
    for i in range(100000):
        a += 1
    print("子进程号{}--work2------a:", os.getpid(),a)
    print('父进程id:', os.getppid())


def mian():
    # 参数,daemon=True,设置进程是否作为守护进程,如果是守护进程,那么该子进程会同主进程一起被关闭
    # p = Process(target=work1,daemon=True)
    p = Process(target=work1)#创建一个子进程
    p.start()
    p2 = Process(target=work2)#创建一个子进程
    p2.start()

    # p.join()
    # p2.join()


if __name__ == '__main__':
    # 注意点:windows下  程序中如果有使用多进程,程序的入口一定要写在 if __name__ == '__main__'里面:
    print('主进程a:',os.getpid(), a)
    mian()


实战:

# 多进程测试,参数分别为进程数和测试函数
def atest_process(Process_MAX, Test_Script):
    process_list = []
    for i in range(int(Process_MAX)):
        process_name = 'process-' + str(i)
        new_process = mp.Process(target=Test_Script, args=(), name=process_name)
        process_list.append(new_process)
        new_process.start()
    for process_obj in process_list:
        process_obj.join()
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姑娘别秃头

你的鼓励是为我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值