Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mendapatkan Kembali Nilai daripada Multiprocessing.Process Functions dalam Python?

Bagaimana untuk Mendapatkan Kembali Nilai daripada Multiprocessing.Process Functions dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 19:07:26550semak imbas

How to Retrieve Return Values from Multiprocessing.Process Functions in Python?

Akses Nilai Pulangan Fungsi dalam Multiprocessing.Process

Dalam multiprocessing dengan Python, mendapatkan nilai pulangan fungsi yang dihantar ke multiprocessing. Proses boleh menjadi rumit, kerana ia tidak disimpan terus dalam objek Proses.

Pertimbangkan contoh berikut:

import multiprocessing

def worker(procnum):
    '''worker function'''
    print(str(procnum) + ' represent!')
    return procnum


if __name__ == '__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)

Walaupun kod ini mencetak output setiap proses pekerja, kami tidak boleh mengakses nilai pulangan mereka secara langsung.

Untuk mendapatkan semula nilai pulangan, kami boleh menggunakan pembolehubah kongsi. Dalam kod yang disemak berikut, Pengurus() daripada modul berbilang pemprosesan digunakan untuk mencipta kamus kongsi:

import multiprocessing


def worker(procnum, return_dict):
    """worker function"""
    print(str(procnum) + " represent!")
    return_dict[procnum] = procnum


if __name__ == "__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())

Di sini, setiap proses pekerja mengemas kini kamus kongsi return_dict dengan nilai pulangannya. Proses utama kemudiannya boleh mengakses nilai ini daripada kamus kongsi.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kembali Nilai daripada Multiprocessing.Process Functions dalam Python?. 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