Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan python multithreading
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.
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!