Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengendalikan Gangguan Papan Kekunci dengan Anggun dalam Kolam Berbilang Pemprosesan Python?

Bagaimana Mengendalikan Gangguan Papan Kekunci dengan Anggun dalam Kolam Berbilang Pemprosesan Python?

Patricia Arquette
Patricia Arquetteasal
2024-10-22 14:33:02134semak imbas

How to Gracefully Handle Keyboard Interrupts in Python's Multiprocessing Pools?

Mengendalikan Gangguan Papan Kekunci dalam Kolam Berbilang Pemprosesan Python

Apabila cuba menguruskan peristiwa KeyboardInterrupt dalam Kolam berbilang pemprosesan Python, pengguna sering menghadapi masalah dengan proses tergantung dan memerlukan penamatan luaran. Artikel ini bertujuan untuk menangani masalah ini dan menyediakan penyelesaian yang boleh dilaksanakan.

Untuk menghuraikan cabaran yang diperkenalkan dalam soalan, kod yang disediakan berhasrat untuk menamatkan semua proses dalam Pool dengan anggun apabila menerima isyarat KeyboardInterrupt (dengan menekan ^ C). Walau bagaimanapun, seperti yang diperhatikan, KeyboardInterrupt mencetuskan jeda dalam pelaksanaan, menghalang prosedur penamatan yang dimaksudkan daripada berkuat kuasa.

Ini dikaitkan dengan pepijat Python yang menghalang penghantaran isyarat KeyboardInterrupt kepada threading.Condition.wait( ) syarat. Isu ini timbul kerana wait() tidak kembali melainkan tamat masa ditentukan. Akibatnya, Gangguan Papan Kekunci tidak diterima semasa proses ini.

Untuk mengatasi cabaran ini, penyelesaian yang dicadangkan melibatkan pengenalan had masa kepada keadaan tunggu():

<code class="python">results = pool.map_async(slowly_square, range(40)).get(9999999)</code>

Dengan memasukkan tamat masa ini, keadaan wait() terpaksa bertindak balas kepada isyarat KeyboardInterrupt dengan segera, membenarkan penamatan yang anggun bagi semua proses dalam Pool.

Oleh itu, pengubahsuaian ini menyediakan pendekatan yang mantap untuk menguruskan KeyboardInterrupts dalam Pool berbilang pemprosesan Python, membolehkan pengguna untuk menghentikan semua proses secara terkawal dengan berkesan pada bila-bila masa.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Gangguan Papan Kekunci dengan Anggun dalam Kolam Berbilang Pemprosesan 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