python 线程安全的数据类型,python队列线程安全
1、可见性问题,CPU缓存引起的可见性问题,使线程一对共享变量A的操作无法立即被线程二看到,导致线程二获得旧值。
2、原子问题。
例如,自我. balance=self ._余额-提取_金额这个语句不是原子中央处理器执行命令。这个语句的执行有三个中央处理器命令。
实例
导入线程
类别帐户:
#定义构造函数
def__init__(自身,账号,余额):
:paramaccount_no:账户
:参数平衡:余额
self.account _no=帐户_否
自我. balance=余额
defdraw(self,draw_amount):
:paramdraw_amount:需要取的钱
:返回:
如果自己. _ balancedraw _ amount
print(threading.current_thread().getName()从 self.account_no 取钱成功,账户取出金额是: 字符串(
draw_amount) n
自我. balance=self ._余额-提取_金额
打印(账户余额是,自我.平衡)
else:
print(threading.current_thread().getName()从 self.account_no 取钱失败n )
#两个线程并发取钱
account=Account(账户一,2000)
穿线. Thread(target=account.draw,name=线程一,args=(800,).开始()
穿线. Thread(target=account.draw,name=线程二,args=(800,).开始()
穿线. Thread(target=account.draw,name=线程三,args=(800,).开始()以上就是大蟒线程安全的两种情况,希望对大家有所帮助。更多计算机编程语言学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1、戴尔自交第三代电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。