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
Lepaskan: 2024-11-29 06:30:12
asal
804 orang telah melayarinya

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

Salin selepas log masuk

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
Salin selepas log masuk

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

Salin selepas log masuk

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())
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan