网站首页 > 资源文章 正文
线程不安全(thread unsafety)
当多个线程同时修改共享变量,如果其中一个线程与另一个线程同时修改一个共享变量,那么将发生错误
程序举例
```
count = 0
def increment():
global count
count += 1
```
上一个程序为例子,如果两个线程同时执行,则会因为可能同时修改count而出错
如何将线程不安全改为线程安全(thread safety)
加入线程锁,可以解决这个问题,当A线程访问count后,count会被锁定,访问结束后再分给其他线程,避免了其他线程同时修改count变量的情况
```
class Counter:
def __init__(self):
self.count = 0
self.lock = Lock()
def increment(self):
for _ in range(100000):
self.lock.acquire()
self.count += 1
self.lock.release()
```
参考:https://www.educative.io/courses/python-concurrency-for-senior-engineering-interviews/xlm6QznGGNE
猜你喜欢
- 2024-10-17 Python实现订单超时自动取消(python自动发货)
- 2024-10-17 Python基础语法知识,3天熟悉你就牛了
- 2024-10-17 「黑马程序员」「成都校区」Python是如何进行内存管理
- 2024-10-17 Python教程:各商品种类的网购替代率如何计算?
- 2024-10-17 python 并发模块介绍(python的并发)
- 2024-10-17 「学习交流」 「成都地区」Python字典底层实现原理
- 2024-10-17 阿里云PYTHON SDK的使用(阿里云服务器跑python)
- 2024-10-17 罗永浩看了都想学!Python的排序算法核心逻辑大揭秘
- 2024-10-17 Python教程:global和nonlocal关键字用法
- 2024-10-17 教你分分钟搞定Linux下yum源配置(linux如何配置yum源)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)