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

Susan Sarandon
Lepaskan: 2024-10-30 21:04:30
asal
783 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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