Rumah > pembangunan bahagian belakang > Tutorial Python > Bilakah Saya Perlu Menggunakan `ThreadPool` Tanpa Dokumen Python untuk Pemprosesan Selari?

Bilakah Saya Perlu Menggunakan `ThreadPool` Tanpa Dokumen Python untuk Pemprosesan Selari?

Mary-Kate Olsen
Lepaskan: 2024-12-12 17:45:15
asal
155 orang telah melayarinya

When Should I Use Python's Undocumented `ThreadPool` for Parallel Processing?

Penggabungan Berasaskan Benang dalam Berbilangpemprosesan

Modul berbilangpemprosesan menawarkan kelas "Pool" yang berkuasa untuk menyelaraskan tugas menggunakan proses berasingan. Walau bagaimanapun, pendekatan ini menanggung overhed disebabkan penciptaan proses. Untuk operasi terikat IO dengan GIL yang dikeluarkan semasa panggilan fungsi sebenar, menggunakan benang boleh menghasilkan prestasi yang lebih baik.

Memperkenalkan Kelas ThreadPool

Bertentangan dengan kepercayaan popular, modul multiprocessing sememangnya menyediakan antara muka kolam berasaskan benang. Permata tersembunyi ini, boleh diakses melalui import multiprocessing.pool ThreadPool, menawarkan cara yang mudah untuk menyelaraskan tugasan menggunakan benang.

Walaupun statusnya tidak didokumenkan, kelas ThreadPool melaksanakan antara muka kolam berbilang pemprosesan menggunakan kelas Proses dummy yang membalut python benang. Kelas Proses dummy ini terdapat dalam modul multiprocessing.dummy, yang menawarkan keseluruhan antara muka berbilang pemprosesan berdasarkan urutan.

Contoh Penggunaan

Serupa dengan ProcessPool, ThreadPool boleh digunakan untuk menyelarikan peta fungsi:

import multiprocessing.pool

def long_running_func(p):
    c_func_no_gil(p)

p = multiprocessing.pool.ThreadPool(4)
xs = p.map(long_running_func, range(100))
Salin selepas log masuk

Nota: Kelas ThreadPool tidak secekap ProcessPool untuk semua kes, terutamanya apabila tugas memerlukan masa CPU yang ketara.

Atas ialah kandungan terperinci Bilakah Saya Perlu Menggunakan `ThreadPool` Tanpa Dokumen Python untuk Pemprosesan Selari?. 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