Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Menjalankan Fungsi Python Secara serentak Menggunakan Multiprocessing?

Bagaimanakah Saya Boleh Menjalankan Fungsi Python Secara serentak Menggunakan Multiprocessing?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-21 12:08:11389semak imbas

How Can I Run Python Functions Concurrently Using Multiprocessing?

Cara Melaksanakan Fungsi serentak dalam Python

Pengenalan

Dalam Python, adalah wajar untuk melaksanakan berbilang fungsi secara serentak untuk mengoptimumkan prestasi, terutamanya apabila fungsi adalah bebas dan tidak mengganggu antara satu sama lain. Artikel ini meneroka teknik untuk menjalankan fungsi secara selari.

Menggunakan Benang dan Pemprosesan Berbilang

Disebabkan pengehadan penterjemah CPython, penjalinan mungkin tidak memberikan keselarian sebenar. Walau bagaimanapun, berbilang pemprosesan secara amnya menawarkan prestasi yang lebih baik.

Contoh Pelaksanaan

Pertimbangkan contoh berikut di mana kami ingin menjalankan dua fungsi, func1 dan func2, secara selari:

def func1():
    # Some code

def func2():
    # Some code

Untuk menjalankan fungsi ini secara serentak menggunakan multiprocessing, kita boleh menggunakan yang berikut langkah:

  1. Buat objek Proses untuk setiap fungsi:

    p1 = Process(target=func1)
    p2 = Process(target=func2)
  2. Mulakan proses:

    p1.start()
    p2.start()
  3. Tunggu proses untuk lengkap:

    p1.join()
    p2.join()

Encapsulation

Untuk memudahkan proses menjalankan fungsi secara selari, kita boleh mentakrifkan fungsi utiliti:

def runInParallel(*fns):
    # Start the processes
    for fn in fns:
        p = Process(target=fn)
        p.start()

    # Wait for the processes to finish
    for p in fns:
        p.join()

Menggunakan fungsi ini, kini kita boleh menjalankan dua fungsi serentak dengan mudah:

runInParallel(func1, func2)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Fungsi Python Secara serentak Menggunakan Multiprocessing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn