python 多进程系列 (一)(multiprocessing)

发布于 更新于
本文目录
  1. 一、概念
  2. 二、案例一
  3. 1、单进程
  4. 2、多进程
  5. 三、案例二

技术文章测试开发

1、进程是计算机中资源分配的最小单元 2、一个进程中可以有多个进程,同一个进程中的线程共享资源 3、python中通过进程可以利用CPU多核优势,计算密集型操作适合使用多进程

一、概念

1、进程是计算机中资源分配的最小单元 2、一个进程中可以有多个进程,同一个进程中的线程共享资源 3、python中通过进程可以利用CPU多核优势,计算密集型操作适合使用多进程

二、案例一

1、单进程

单进程执行,先吃完饭,再睡觉
import time
def eat():
    for i in range(10):
        print("吃饭")
        time.sleep(1)
    print("吃完饭了")
def sleep():
    for i in range(10):
        print("睡觉")
        time.sleep(1)
    print("睡醒了")

if __name__ == '__main__':
    eat()
    sleep()

2、多进程

多进程执行,吃饭和睡觉交替执行
import time
import multiprocessing
def eat():
    for i in range(10):
        print("吃饭")
        time.sleep(1)
    print("吃完饭了")
def sleep():
    for i in range(10):
        print("睡觉")
        time.sleep(1)
    print("睡醒了")

if __name__ == '__main__':
    pro1 = multiprocessing.Process(target=eat)
    pro1.start()
    pro2 = multiprocessing.Process(target=sleep)
    pro2.start()

三、案例二

import threading
import time

#单线程实现
def demo(start,end):
    num = 0
    for i in range(start,end):
        num += i
    return num

#多线程实现
def test_01():
    #拆分成2段进执行
    th1 = threading.Thread(target=demo,args=(1,50000000))
    th1.start()
    th2 = threading.Thread(target=demo,args=(50000000,100000000))
    th2.start()

if __name__ == '__main__':
    start = time.time()
    #单线程执行
    demo(1,100000000)
    #多线程执行
    # test_01()
    end = time.time()
    print(end-start)

来源:testingpai

继续阅读