Thread¶
start()
– käivitab lõime. Uues lõimed käivitatakserun()
meetodtarget
-argumendina antud funktsioonile. Väljakutsutav 1 kord ühele lõimele.join(timeout=None)
– sunnib lõimel töö lõpetada/ühendab lõimed. "Jätab vahele" CPU-ligipääsust, kuni teised lõimed oma töö lõpetavad või seatud ajapiirang möödub. Ajapiirangu aegudes saab kontrollidais_alive()
meetodiga, mis lõimed jäid ellu.

name
– lõime nimi. Algne antakse konstruktoris, kuid saab ise identifitseerimise eesmärgil muuta.is_alive()
– kas lõim töötab.daemon
– kas lõim on pandud taustal jooksma. Peab määrama ennestart()
meetodit. Programm lõppeb ka, kui aktiivsed on ainult daemonlõimed.
Programm lõppeb ka siis, kui vaid daemonlõim elus:
import threading
import time
def worker():
print(f"Wakes up")
time.sleep(2)
print(f"[{threading.current_thread().name}] Goes to bed\n")
daemon_thread = threading.Thread(target=worker, name="DaemonWorker")
daemon_thread.daemon = True # BEFORE start()
daemon_thread.start()
normal_thread = threading.Thread(target=worker, name="NormalWorker")
normal_thread.start()
print(f"Daemon named {daemon_thread.name} with id {daemon_thread.ident} and aliveness is {daemon_thread.is_alive()}\n")
print(f"Thread named {normal_thread.name} with id {normal_thread.ident} and aliveness is {normal_thread.is_alive()}\n")
# We wait only normal threads
normal_thread.join()
Meetodid¶
threading.active_count()
: aktiivsete lõimede koguarv.threading.enumerate()
: kõigi aktiivsete lõimede objektid ning ka aktiivse või lõpetatud põhilõime objekt.threading.main_thread()
: põhilõime objekt. Üldjuhul selle lõimega käivitatakse Pythoni interpreteerija.

threading.current_thread()
: hetkel jooksva lõime objekt. Kasulik logimiseks.threading.get_ident()
: lõime unikaalne identifikaator. Sellega on hea luua lõime-spetsiifilisi andmestruktuure, nt sõnastikus kasutada.