日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

提高Python程序运行效率三种模式第一种:多进程multiprocessing模块

發布時間:2025/3/20 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 提高Python程序运行效率三种模式第一种:多进程multiprocessing模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

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

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

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

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

    ''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import multiprocessing import time def sum_1(num):num1 =0while num1 < num:print(num)num1 += 1def sum_2(num2):num2 =0while num2 < num:print(num)num2 += 1print("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!

    總結

    以上是生活随笔為你收集整理的提高Python程序运行效率三种模式第一种:多进程multiprocessing模块的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。