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

一、概念

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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值