1.安全概念介绍
2. Lock用于解决线程安全
代码实现
import threadingimport timeclass Account: def __init__(self,balance): self.balance = balancelock = threading.Lock()def draw(account,amount): with lock: if account.balance > amount: time.sleep(0.1)# 存在耗时任务时就会有线程切换 print(threading.current_thread().name,'取钱成功') account.balance -= amount print(threading.current_thread().name, '余额',account.balance) else: print(threading.current_thread().name,'余额不足')if __name__ == '__main__': account = Account(1000) t1 = threading.Thread(name='t1',target=draw,args=(account,800)) t2 = threading.Thread(name='t2', target=draw, args=(account, 800)) t1.start() t2.start() t1.join() t2.join()