Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menjalankan Berbilang Fungsi Python secara Selari Menggunakan Multiprocessing?

Bagaimanakah Saya Boleh Menjalankan Berbilang Fungsi Python secara Selari Menggunakan Multiprocessing?

DDD
DDDasal
2024-12-05 07:50:13484semak imbas

How Can I Run Multiple Python Functions in Parallel Using Multiprocessing?

Jalankan Fungsi Secara Selari: Panduan untuk Berbilang Pemprosesan

Konsep

Berbilang tugas melibatkan pelaksanaan berbilang tugasan secara serentak, satu pencapaian yang boleh dicapai melalui sama ada threading atau pemproses berbilang.

Pemprosesan berbilang lwn. Pemprosesan

Dalam Python, penjalinan amat berguna untuk operasi terikat I/O. Untuk tugasan intensif CPU, pemproses berbilang menawarkan prestasi yang lebih baik kerana ia memanfaatkan berbilang teras pemproses.

Fungsi Menjalankan Secara Selari

Pertimbangkan senario berikut:

import common

dir1 = 'C:\folder1'
dir2 = 'C:\folder2'
filename = 'test.txt'
addFiles = [25, 5, 15, 35, 45, 25, 5, 15, 35, 45]

def func1():
   c = common.Common()
   for i in range(len(addFiles)):
       c.createFiles(addFiles[i], filename, dir1)
       c.getFiles(dir1)
       time.sleep(10)
       c.removeFiles(addFiles[i], dir1)
       c.getFiles(dir1)

def func2():
   c = common.Common()
   for i in range(len(addFiles)):
       c.createFiles(addFiles[i], filename, dir2)
       c.getFiles(dir2)
       time.sleep(10)
       c.removeFiles(addFiles[i], dir2)
       c.getFiles(dir2)

Untuk melaksanakan func1 dan func2 secara serentak, multiprocessing hendaklah bekerja. Di bawah ialah contoh:

from multiprocessing import Process

if __name__ == "__main__":
    p1 = Process(target=func1)
    p1.start()
    p2 = Process(target=func2)
    p2.start()
    p1.join()
    p2.join()

Merangkum Pelaksanaan Selari

Kod di atas boleh dipermudahkan menjadi fungsi yang memudahkan pelaksanaan selari berbilang fungsi:

def runInParallel(*fns):
  proc = []
  for fn in fns:
    p = Process(target=fn)
    p.start()
    proc.append(p)
  for p in proc:
    p.join()

runInParallel(func1, func2)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Berbilang Fungsi Python secara Selari 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