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

本贴最后更新于 763 天前,其中的信息可能已经物是人非

一、概念

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)

回帖
请输入回帖内容 ...