代码拉取完成,页面将自动刷新
同步操作将从 jackfrued/git2003 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""
多线程程序
被多个线程竞争的资源(对象)通常称之为临界资源,如果对临界资源没有任何保护措施,
就有可能导致数据状态的错乱,可以通过加锁的方式对临界资源进行保护
"""
import time
from threading import Thread, RLock
class Account:
"""银行账户"""
def __init__(self):
self.balance = 0
self.lock = RLock()
def deposit(self, money):
"""存钱"""
with self.lock:
new_balance = self.balance + money
time.sleep(0.01)
self.balance = new_balance
def withdraw(self, money):
"""取钱"""
if self.balance >= money:
with self.lock:
new_balance = self.balance - money
time.sleep(0.01)
self.balance = new_balance
return True
return False
account = Account()
threads = []
for _ in range(100):
t = Thread(target=account.deposit, args=(1, ))
threads.append(t)
t.start()
for t in threads:
t.join()
print(account.balance)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。