Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Komunikasi Antara Proses dengan Mudah dalam Python?

Bagaimanakah Saya Boleh Melaksanakan Komunikasi Antara Proses dengan Mudah dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-10-30 21:04:30793semak imbas

How Can I Easily Implement Interprocess Communication in Python?

Komunikasi Antara Proses dalam Python

Apabila bekerja dengan berbilang masa jalan Python, ia menjadi perlu untuk mewujudkan komunikasi antara proses yang berkesan. Pelbagai kaedah wujud, termasuk:

  • Paip Dinamakan (os.mkfifo): Walaupun pilihan asas, ia boleh berasa tidak diperhalusi dan terdedah kepada ralat.
  • Perkhidmatan DBus: Sesuai untuk persekitaran desktop, tetapi terlalu kompleks untuk sistem tanpa kepala.
  • Soket: Tahap rendah dan intensif secara manual.

Penyelesaian Komprehensif

Untuk menangani keperluan khusus anda, pertimbangkan perpustakaan berbilang pemprosesan. Ia menyediakan pendengar dan pelanggan yang mengendalikan komunikasi soket dengan lancar dan membolehkan penghantaran objek Python sewenang-wenangnya.

Pelaksanaan Pelayan

Pelayan boleh dikonfigurasikan untuk mendengar mesej masuk:

<code class="python">from multiprocessing.connection import Listener

address = ('localhost', 6000)
listener = Listener(address, authkey=b'secret password')
conn = listener.accept()
print('connection accepted from', listener.last_accepted)
while True:
    msg = conn.recv()
    # Process the received message here
    if msg == 'close':
        conn.close()
        break
listener.close()</code>

Pelaksanaan Pelanggan

Pelanggan boleh memulakan komunikasi dan menghantar arahan sebagai objek Python:

<code class="python">from multiprocessing.connection import Client

address = ('localhost', 6000)
conn = Client(address, authkey=b'secret password')
conn.send('close')
# Send arbitrary objects:
# conn.send(['a', 2.5, None, int, sum])
conn.close()</code>

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Komunikasi Antara Proses dengan Mudah 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