import threading
t1 = threading.Thread(target=sing)
t2 = threading.Thread(target=dance)
t1.start()
t2.start()
并行:真的多任务
并发:假的多任务
多任务执行时,不能保证那个线程先执行,可以加适当的延迟(time.sleep(1))
print(threading.enumerate()) # 查看线程数
互斥锁解决多线程资源竞争问题
# 创建锁
mutex = threading.Lock()
# 上锁
mutex.acquire()
# 解锁
mutex.release()