python以运行效率高著称,提高Python程序運行效率三種模式第一種:多進程multiprocessing模塊...

本文介绍了如何利用Python的multiprocessing模块实现多进程运行,通过实例展示了如何创建独立进程执行sum_1和sum_2函数,解释了编译型与解释型语言的区别,并重点讲解了进程间通信与效率提升。
摘要由CSDN通过智能技术生成

python是一個解釋性語言,所以它不需要進行編譯就可以直接使用:

1. 編譯型語言在程序執行之前,先會通過編譯器對程序執行一個編譯的過程,把程序轉變成機器語言。運行時就不需要翻譯,而直接執行就可以了。最典型的例子就是C語言。

2. 解釋型語言就沒有這個編譯的過程,而是在程序運行的時候,通過解釋器對程序逐行作出解釋,然后直接運行,最典型的例子是Ruby

因為編譯型語言在程序運行之前就已經對程序做出了“翻譯”,所以在運行時就少掉了“翻譯”的過程,所以效率比較高。

那我們就得想把辦法提升我們程序運行的效率————multiprocessing多進程運行

個人理解就是將原有的程序復制一份到新的內存空間,行程彼此相對獨立的多個程序運行

importmultiprocessingimporttimedefsum_1(num):

num1=0while num1

num1+= 1

defsum_2(num2):

num2=0while num2

num2+= 1

print("The program is begin %s") %time.time()

p1= multiprocessing.Process(target=sum_1, args=(10000, ))

p2= multiprocessing.Process(target=sum_2, args=(10000, ))

p1.start()

p2.start()

p1.join()

p2.join()print("The program is over %s") % time.time()

p1 與 p2 為兩個獨立的程序,互相直接數據不會共享,各自獨立運行各自的函數。

p1 = multiprocessing.Process(target=sum_1, args=(10000, ))

p2= multiprocessing.Process(target=sum_2, args=(10000, ))

target = 后面是你需要新創建子進程執行的函數名,args=后面必須是一個元組,寫入的是你需要給程序傳遞的參數,沒有一個以上的參數時需要加,分隔

p1.start()

p2.start()

通過.start()方法來開啟新的子進程,主進程開啟新的子進程后會繼續往下運行自己的代碼

p1.join()

p2.join()

通過.join()方法來堵塞主進程,不讓主進程繼續往下執行相關代碼,而是等待子進程全部執行完畢后,主進程解除堵塞繼續往下執行。

因為進程之間相對獨立,如果需要通信的話我們可以使用multiprocessing.Queue,Queue的功能是將需要傳輸的數據通過put放在隊里中, 然后其他進程可以通過get獲取。下次再整理,有一起學python的嗎,可以一起交流啊,最近寫個簡單的web服務器老是莫名其妙奔潰,急需要找個人一起debug!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值