Cara Mendapatkan Kembali Nilai daripada Fungsi yang Dilalui kepada berbilang pemprosesan.Proses
Apabila menghantar fungsi kepada berbilang pemprosesan.Proses, selalunya terdapat keperluan untuk mendapatkan semula nilai pulangan fungsi. Walau bagaimanapun, nilai ini tidak mudah diakses dalam objek Proses yang dikembalikan.
Pertimbangkan kod berikut:
import berbilang pemprosesan
def worker(procnum):
'''worker function''' print str(procnum) + ' represent!' return procnum
jika nama == '__main__':
jobs = [] for i in range(5): p = multiprocessing.Process(target=worker, args=(i,)) jobs.append(p) p.start() for proc in jobs: proc.join() print jobs
Nilai pulangan yang dijangkakan tidak tersedia melalui objek Proses dalam 'kerja'.
Penyelesaian: Menggunakan Pembolehubah Dikongsi
Untuk mendapatkan kembali nilai pulangan, pembolehubah yang dikongsi boleh digunakan untuk membolehkan komunikasi antara proses utama dan pekerja proses.
import berbilang pemprosesan
def worker(procnum, return_dict):
"""worker function""" print(str(procnum) + " represent!") return_dict[procnum] = procnum
jika nama == "__main__":
manager = multiprocessing.Manager() return_dict = manager.dict() jobs = [] for i in range(5): p = multiprocessing.Process(target=worker, args=(i, return_dict)) jobs.append(p) p.start() for proc in jobs: proc.join() print(return_dict.values())
Penjelasan:
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Pulangan daripada multiprocessing.Process Functions?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!