Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan python multithreading

Cara menggunakan python multithreading

百草
百草asal
2023-11-20 10:38:012910semak imbas

Cara menggunakan python multi-threading: 1. Import modul threading; 3. Mulakan thread; laksana pada masa yang sama; 6. Penyegerakan Benang dan komunikasi. Python multi-threading merujuk kepada menggunakan berbilang benang untuk melaksanakan kod pada masa yang sama untuk mencapai tujuan melaksanakan tugas secara serentak. Multithreading dalam Python dilaksanakan melalui modul threading.

Cara menggunakan python multithreading

Sistem pengendalian untuk tutorial ini: Sistem Windows 10, versi Python 3.11.4, komputer DELL G3.

Python multi-threading merujuk kepada menggunakan berbilang benang untuk melaksanakan kod pada masa yang sama untuk mencapai tujuan melaksanakan tugas secara serentak. Multithreading dalam Python dilaksanakan melalui modul threading. Di bawah ini saya akan memperkenalkan secara terperinci cara menggunakan Python multi-threading.

1 Import modul threading

Mula-mula anda perlu mengimport modul threading, yang menyediakan kelas dan fungsi berkaitan multi-threading. Kaedah import adalah seperti berikut:

import threading

2 Buat objek benang

Kaedah mencipta objek benang adalah seperti berikut:

t = threading.Thread(target=func, args=args)

. Antaranya, parameter sasaran menentukan objek yang akan dilaksanakan Fungsi, parameter args menentukan parameter yang akan dihantar ke fungsi.

3 Mulakan utas

Kaedah untuk memulakan utas adalah seperti berikut:

t.start()

Kaedah ini akan memulakan utas baharu dan laksanakan fungsi yang ditentukan.

4 Tunggu urutan menyelesaikan pelaksanaan

Anda boleh menggunakan kaedah join() untuk menunggu urutan menyelesaikan pelaksanaan, seperti yang ditunjukkan di bawah:

.
t.join()

Kaedah ini akan menyekat benang semasa sehingga utas yang ditentukan selesai pelaksanaan.

5. Berbilang utas dilaksanakan serentak

Jika anda ingin melaksanakan berbilang utas pada masa yang sama, anda boleh mencipta berbilang objek utas dan memulakannya secara berasingan. Contohnya:

t1 = threading.Thread(target=func1, args=args1)  
t2 = threading.Thread(target=func2, args=args2)  
t1.start()  
t2.start()  
t1.join()  
t2.join()

Dengan cara ini, dua fungsi func1 dan func2 boleh dilaksanakan pada masa yang sama. Ambil perhatian bahawa disebabkan oleh pelaksanaan serentak beberapa utas, mungkin terdapat masalah seperti keadaan perlumbaan (keadaan perlumbaan), jadi ia perlu dikendalikan dengan berhati-hati.

6. Penyegerakan dan komunikasi benang

Dalam pengaturcaraan berbilang benang, penyegerakan benang dan komunikasi adalah konsep yang sangat penting. Anda boleh menggunakan Lock, RLock, Condition dan kelas lain untuk melaksanakan penyegerakan dan komunikasi benang. Contohnya, gunakan kelas Lock untuk menyegerakkan pelaksanaan berbilang benang:

lock = threading.Lock()  
lock.acquire()  
# 这里是需要同步的代码块  
lock.release()

Tambah kaedah acquire() dan release() sebelum dan selepas blok kod yang perlu disegerakkan untuk menyegerakkan blok kod . Benang lain perlu menunggu kunci dilepaskan apabila melaksanakan blok kod ini sebelum ia boleh meneruskan pelaksanaan. Selain itu, anda juga boleh menggunakan pembolehubah keadaan (Keadaan) untuk melaksanakan operasi penyegerakan yang lebih kompleks. Contohnya:

cond = threading.Condition()  
cond.acquire()  
# 这里是需要同步的代码块  
time.sleep(1)  # 模拟等待一段时间  
cond.release()

Atas ialah kandungan terperinci Cara menggunakan python multithreading. 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