Riješeno: python nit

Posljednje ažuriranje: 09/11/2023

Glavni problem s nitima je taj što mogu stvoriti mnogo sukoba za resurse, kao što su CPU vrijeme i memorija. Ovo može dovesti do problema ako dvije niti pokušaju pristupiti istom resursu u isto vrijeme.ing_simple.py

#!/usr/bin/python import threading import time # Definirajte funkciju za nit def print_time( threadName, kašnjenje): count = 0 dok count < 5: time.sleep(delay) count += 1 print "%s: %s" % ( threadName, time.ctime(time.time()) ) # Kreirajte dvije niti na sljedeći način pokušajte: thread.start_new_thread( print_time, ("Thread-1", 2, ) ) thread.start_new_thread( print_time, ( "Thread-2", 4, ) ) osim: print "Greška: nije moguće pokrenuti nit" dok 1: pass[/code] Ovaj kod kreira dvije niti. Prva nit će pokrenuti funkciju "print_time" svake 2 sekunde, a druga nit će pokrenuti funkciju "print_time" svake 4 sekunde.

Threading Objects

U Pythonu, objekte možete navojiti pomoću modula threading. Ovaj modul pruža niz funkcija koje možete koristiti za kreiranje i upravljanje nitima u vašem kodu.

Da biste pokrenuli novu nit u Pythonu, možete koristiti funkciju threading.Thread(). Ova funkcija kao jedini argument uzima funkcijski objekt koji želite pokrenuti kao nit. Objekt funkcije mora imati atribut __name__, koji specificira ime niti na kojoj će se ova funkcija pokrenuti.

Nakon što kreirate nit pomoću funkcije Thread(), možete je pokrenuti pozivanjem metode Threading.start(). Ova metoda uzima kao jedini argument string koji specificira ime programske datoteke u kojoj bi nova nit trebala početi da se izvršava.

Također možete koristiti metodu Threading.join() da prekinete pokrenutu nit i vratite kontrolu natrag u vašu glavnu programsku petlju. Ova metoda kao jedini argument uzima string koji specificira ime programske datoteke u kojoj bi nova nit trebala prekinuti izvršavanje.

Daemon Threads

Demonske niti su niti koje se pokreću u pozadini programa. Koriste se za rukovanje dugotrajnim zadacima ili uslugama bez ometanja normalnog toka izvršenja.

Slični postovi: