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() # Wait until thread finishes to exit

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()