Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengemas kini Pembolehubah Global daripada Subproses dalam Multiprocessing?

Bagaimanakah Saya Boleh Mengemas kini Pembolehubah Global daripada Subproses dalam Multiprocessing?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-06 07:54:02591semak imbas

How Can I Update Global Variables from Subprocesses in Multiprocessing?

Pemprosesan Berbilang | Kemas Kini Pembolehubah Global Tidak Dikembalikan kepada Induk

Dalam berbilang pemprosesan, setiap subproses berjalan sebagai tika Python yang berasingan dengan ingatan dan keadaan globalnya sendiri. Oleh itu, sebarang kemas kini yang dibuat kepada pembolehubah global dalam subproses tidak dapat dilihat oleh proses induk. Selain itu, data yang dihantar antara proses menggunakan proksi atau baris gilir yang dikongsi mestilah boleh dijeruk.

Untuk menangani isu khusus mengenai ketidakbolehpekatan objek LORR, pertimbangkan pendekatan berikut:

  1. Buat subkelas boleh jeruk LORR:
    Ini melibatkan penciptaan kelas baharu yang mewarisi daripada LORR dan melaksanakan kaedah __getstate__ dan __setstate__ untuk mendayakan penjerukan.
  2. Lepaskan rujukan kepada a objek ctype:
    Cari cara untuk menyimpan data yang berkaitan dalam objek ctype dan hantar rujukan kepada objek itu kepada proses anak. Walau bagaimanapun, pendekatan ini mungkin tidak boleh dipercayai.
  3. Gunakan baris gilir untuk menghantar mesej:
    Tubuhkan sistem komunikasi antara ibu bapa dan anak yang memproses menggunakan baris gilir. Ibu bapa boleh menghantar panggilan kaedah kepada anak dan anak boleh mengembalikan hasil melalui baris gilir.

Ingat, pendekatan yang paling sesuai akan bergantung pada pelaksanaan dan keupayaan khusus objek LORR.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Pembolehubah Global daripada Subproses dalam Multiprocessing?. 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