Cara Menangkap Nilai Pulangan daripada Fungsi Berasaskan Proses dalam Multiprocessing
Dalam aplikasi multiprocessing, keperluan biasa timbul untuk mendapatkan kembali nilai pulangan fungsi yang dilaksanakan oleh proses kanak-kanak. Sebab ini tidak mudah diakses ialah proses kanak-kanak tidak boleh meneruskan nilai secara langsung kepada proses utama. Walau bagaimanapun, terdapat teknik untuk menangkap nilai ini dengan berkesan.
Dalam contoh yang diberikan, senarai proses pekerja dibuat untuk melaksanakan tugas tertentu dan mengembalikan nombor prosesnya. Walau bagaimanapun, apabila cuba mengakses nilai pulangan daripada objek Proses yang disimpan dalam senarai "kerja", menjadi jelas bahawa nilai ini tidak disimpan secara langsung dalam atributnya.
Untuk mengatasi cabaran ini, pendekatan berbeza adalah diperlukan. Satu penyelesaian yang berkesan melibatkan penggunaan pembolehubah yang dikongsi, seperti kamus. Pembolehubah kongsi ini membenarkan komunikasi antara proses kanak-kanak dan proses utama.
Dalam contoh yang diubah suai, Pengurus dicipta untuk mengurus memori yang dikongsi antara proses. Kamus, return_dict, dimulakan dan diluluskan sebagai hujah kepada fungsi pekerja. Dalam pekerja, nombor proses ditetapkan sebagai kunci dan nombor proses itu sendiri sebagai nilai.
Setelah semua proses menyelesaikan pelaksanaannya, proses utama menyertai proses anak dan kemudian mengakses return_dict yang dikongsi. Dengan mengulangi nilainya, nilai pulangan yang dikehendaki bagi proses anak diperolehi. Pendekatan ini berkesan menangkap nilai pulangan melalui komunikasi antara proses.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nilai Pulangan daripada Proses Anak dalam Multiprocessing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!