Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menggunakan modul threading dalam python
Penjelasan terperinci tentang modul threading dalam python menyediakan API peringkat lebih tinggi daripada modul thread untuk menyediakan concurrency thread. Utas ini berjalan serentak dan berkongsi memori.
Mari kita lihat penggunaan khusus modul benang:
Fungsi sasaran boleh membuat instantiat objek Benang, dan setiap objek Benang mewakili benang. . Anda boleh mula menjalankan kaedah start().
Berikut ialah perbandingan antara menggunakan serentak berbilang benang dan tidak menggunakan serentak berbilang benang:
Yang pertama ialah operasi tanpa menggunakan berbilang benang:
Kodnya ialah seperti berikut:
#!/usr/bin/python #compare for multi threads import time def worker(): print"worker" time.sleep(1) return if__name__ =="__main__": for i in xrange(5): worker()
Hasil pelaksanaan adalah seperti berikut:
Berikut ialah operasi menggunakan konkurensi berbilang benang:
The kod adalah seperti berikut:
#!/usr/bin/python import threading import time defworker(): print"worker" time.sleep(1) return fori in xrange(5): t=threading.Thread(target=worker) t.start()
Ia boleh dilihat dengan jelas bahawa operasi serentak berbilang benang mengambil masa yang lebih singkat.
Kaedah ini mengembalikan bilangan utas dalam proses semasa. Nombor yang dikembalikan termasuk utas utama.
Kodnya adalah seperti berikut:
#!/usr/bin/python #current's number of threads import threading import time defworker(): print"test" time.sleep(1) for i in xrange(5): t=threading.Thread(target=worker) t.start() print"current has %d threads" % (threading.activeCount() -1)
Kaedah ini mengembalikan senarai objek Thread yang sedang dijalankan.
Kodnya adalah seperti berikut:
#!/usr/bin/python #test the variable threading.enumerate() import threading import time defworker(): print"test" time.sleep(2) threads=[] for i in xrange(5): t=threading.Thread(target=worker) threads.append(t) t.start() for item in threading.enumerate(): print item print for item in threads: print item
Tetapkan proses latar belakang.
Kod adalah seperti berikut:
#!/usr/bin/python #create a daemon import threading import time def worker(): time.sleep(3) print"worker" t=threading.Thread(target=worker) t.setDaemon(True) t.start() print"haha"
Ia boleh dilihat bahawa operasi pencetakan dalam kaedah worker() tidak dipaparkan, menunjukkan bahawa ia mempunyai menjadi proses latar belakang.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan modul threading dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!