#!/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)