python what does thread.daemon mean code example
Example 1: python daemon thread
import threading
import time
def func_1():
while True:
print(f"[{threading.current_thread().name}] Printing this message every 2 seconds")
time.sleep(2)
daemon_thread = threading.Thread(target=func_1, name="daemon-thread", daemon=True)
daemon_thread.start()
time.sleep(4)
Example 2: python daemon thread
import threading
import time
shared_resource = False
lock = threading.Lock()
def perform_computation():
print(f'Thread {threading.currentThread().name} - performing some computation....')
shared_resource = True
print(f'Thread {threading.currentThread().name} - set shared_resource to True!')
print(f'Thread {threading.currentThread().name} - Finished!')
time.sleep(1)
def monitor_resource():
while shared_resource == False:
time.sleep(1)
print(f'Daemon Thread {threading.currentThread().name} - Detected shared_resource = False')
time.sleep(1)
print(f'Daemon Thread {threading.currentThread().name} - Finished!')
if __name__ == '__main__':
a = threading.Thread(target=perform_computation, name='A')
b = threading.Thread(target=monitor_resource, name='B', daemon=True)
a.start()
b.start()