threads02.py

#!/usr/bin/python3
# ===================================================================
# From: www.youtube.com/watch?v=rQTJuCCCLVo
# ===================================================================
import threading

x = 0                          # global data

def thread_task(lock):
    global x    
    for i in range(1000000):
        lock.acquire()
        x += 1
        lock.release()

    
def main_task():

    lock = threading.Lock()
    
    # args is a tuple
    t1 = threading.Thread(target=thread_task, args=(lock,))
    t2 = threading.Thread(target=thread_task, args=(lock,))
    
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    
# ---- main

if __name__ == '__main__':
    main_task()
    print(x)