Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mendapatkan Nilai Pulangan daripada multiprocessing.Process Functions?

Bagaimana untuk Mendapatkan Nilai Pulangan daripada multiprocessing.Process Functions?

Patricia Arquette
Patricia Arquetteasal
2024-11-29 06:30:12806semak imbas

How to Retrieve Return Values from multiprocessing.Process Functions?

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:

  • Pengurus berbilang pemprosesan digunakan untuk mencipta kamus kongsi, 'return_dict'.
  • Setiap proses pekerja mengakses 'return_dict' dikongsi dan menyimpan nilai pulangannya di bawah nombor prosesnya sebagai kunci.
  • Proses utama mendapatkan semula nilai pulangan dengan mengakses nilai kamus.

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!

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