Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Berkongsi Kamus Antara Pelbagai Proses Menggunakan Multiprocessing?

Bagaimana untuk Berkongsi Kamus Antara Pelbagai Proses Menggunakan Multiprocessing?

Patricia Arquette
Lepaskan: 2024-11-27 08:38:10
asal
298 orang telah melayarinya

How to Share a Dictionary Between Multiple Processes Using Multiprocessing?

Cara Berkongsi Kamus Antara Pelbagai Proses Menggunakan Multiprocessing

Apabila mencipta berbilang proses yang beroperasi pada baris gilir dikongsi dan menggunakan kamus global untuk storan hasil, adalah penting untuk menangani isu penyegerakan untuk memastikan manipulasi data yang tepat.

Satu pendekatan untuk menyegerakkan akses kepada kamus kongsi ialah menggunakan objek Pengurus. Pengurus menyediakan mekanisme untuk mencipta dan mengurus objek kongsi yang boleh diakses oleh berbilang proses.

Dalam senario khusus ini, anda boleh memasukkan objek Pengurus ke dalam kod anda seperti berikut:

from multiprocessing import Process, Manager

def f(d):
    d[1] += '1'
    d['2'] += 2

if __name__ == '__main__':
    manager = Manager()

    d = manager.dict()
    d[1] = '1'
    d['2'] = 2

    p1 = Process(target=f, args=(d,))
    p2 = Process(target=f, args=(d,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()

    print(d)
Salin selepas log masuk

Kaedah Manager.dict() mencipta kamus kongsi yang boleh diakses oleh sebarang proses. Dengan menyerahkan kamus ini sebagai hujah kepada setiap proses, anda membenarkan mereka memanipulasi data secara serentak.

Setelah menyertai proses, proses utama boleh mencetak kandungan kamus kongsi, yang kini akan mencerminkan hasil terkumpul oleh semua proses kanak-kanak.

Pendekatan ini memastikan semua proses mempunyai akses kepada kamus yang sama dan pengubahsuaian yang dibuat oleh satu proses dapat dilihat oleh orang lain, menyelesaikan masalah isu penyegerakan.

Atas ialah kandungan terperinci Bagaimana untuk Berkongsi Kamus Antara Pelbagai Proses Menggunakan Multiprocessing?. 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