python thread lock code example

Example 1: how to lock writing to a variable thread python

from threading import Lock, Thread
lock = Lock()
g = 0
lock.acquire()
g += 1
lock.release()

Example 2: 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)

# initiate the thread with daemon set to True
daemon_thread = threading.Thread(target=func_1, name="daemon-thread", daemon=True)
# or
# daemon_thread.daemon = True
# or
# daemon_thread.setDaemon(True)
daemon_thread.start()
# sleep for 10 seconds and end the main thread
time.sleep(4)
# the main thread ends

Example 3: 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 4: 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)]