import threading
#创建全局互斥锁
lock=threading.Lock()
#获取锁
lock.acquire()
#释放锁
lock.release()
g_num=0
def work1(num):
global g_num
for i in range(num):
#核心代码上锁
lock.acquire(True)
g_num+=i
lock.release()
print("work1=",g_num)
def work2(num):
global g_num
for i in range(num):
#线程之间全局变量共享
g_num+=i
print("work2=",g_num)
if __name__ == '__main__':
work1_Thread=threading.Thread(target=work1,args=(101,)) #args需要一个元组
work2_Thread=threading.Thread(target=work2,args=(101,))
work1_Thread.start()
work1_Thread.join()
work2_Thread.start()
exit()
异步: 多任务, 多个任务之间执行没有先后顺序,可以同时运行,执行的先后顺序不会有什么影响,存在的多条运行主线
同步: 多任务, 多个任务之间执行的时候要求有先后顺序,必须一个先执行完成之后,另一个才能继续执行, 只有一个主线
阻塞:从调用者的角度出发,如果在调用的时候,被卡住,不能再继续向下运行,需要等待,就说是阻塞
非阻塞: 从调用者的角度出发, 如果在调用的时候,没有被卡住,能够继续向下运行,无需等待,就说是非阻塞