threading.lock() code example
Example 1: threading python
import threading
import time
def thread_function(name):
print(f"Thread {name}: starting")
time.sleep(2)
print(f"Thread {name}: finishing")
my_thread = threading.Thread(target=thread_function, args=(1,))
my_thread.start()
time.sleep(1)
my_second_thread = threading.Thread(target=thread_function, args=(2,))
my_second_thread.start()
my_second_thread.join()
Example 2: threading lock in python
import threading
lock = threading.Lock()
def check_this():
with lock:
"""
acquires lock at the beginning
and releases at the end of this block
"""
a, b = 1, 0
print("locked")
try:
print(a // b)
except Exception as _:
print(_)
print("lock is released")
[threading.Thread(target=also_this).start() for _ in range(2)]
Example 3: python daemon thread
import threading
import time
def print_work_a():
print('Starting of thread :', threading.currentThread().name)
time.sleep(2)
print('Finishing of thread :', threading.currentThread().name)
def print_work_b():
print('Starting of thread :', threading.currentThread().name)
print('Finishing of thread :', threading.currentThread().name)
a = threading.Thread(target=print_work_a, name='Thread-a')
b = threading.Thread(target=print_work_b, name='Thread-b')
a.start()
b.start()