当前位置: 首页 > article >正文

多线程下的共享变量访问数据竞争的问题

多线程下对共享变量的写存在数据竞问题可导致数据与预期不一致。最近在研究race conditions漏洞,用以下python 代码记录一下,以此论证,如下:

from concurrent.futures import ThreadPoolExecutor
globalNum = 5
def test():
    global globalNum
    if globalNum >= 5:
        print("globalNum >= 5 now")
        globalNum -= 1

if __name__ == '__main__':
    pool = ThreadPoolExecutor(max_workers=100)
    for _ in range(100):
        pool.submit(test)

以上代码运行时,预期输出一条“globalNum >= 5 now”,但实际情况可能输出2条及多条,如图:


http://www.kler.cn/news/306882.html

相关文章:

  • SSM框架学习
  • GD32E230 RTC报警中断功能使用
  • DockerDocker Compose安装(离线+在线)
  • 汽车免拆诊断案例 | 沃尔沃V40 1.9TD断续工作
  • ensp—相关ospf-3
  • SpringBoot 消息队列RabbitMQ 交换机模式 Fanout广播 Direct定向 Topic话题
  • react使用技巧
  • Spring6学习笔记4:事务
  • Spring Boot-消息队列相关问题
  • C++从入门到起飞之——继承下篇(万字详解) 全方位剖析!
  • Pr:首选项 - 媒体
  • python打通hive数据库实现CRUD
  • 力扣最热一百题——螺旋矩阵
  • 动态住宅代理网络在广告验证中的作用
  • 卡车配置一键启动无钥匙进入手机控车
  • 详细分析Uniapp中的轮播图基本知识(附Demo)
  • PHP7 json_encode() 浮点小数溢出错误
  • 优先级队列算法
  • QUIC的丢包处理
  • 2_foc闭环调试_ADC电流采样与滤波及pid数据结构
  • python 检索与该查询最相似的句子 使用库hflayers和sentence_transformers来实现遇到的问题
  • libwebsockets之日志系统
  • 【C#】vs2022 .net8
  • Leetcode 165. 比较版本号(Medium)
  • 日用放大器
  • 监控binlog日志监控表变化进行消息通知
  • Gartner发布报告揭秘微软数据安全功能和许可
  • (CVPR-2022)感知优先的扩散模型训练
  • 基于51单片机的倒计时音乐播放系统设计
  • Android libui新加接口,编译报错:error: Please update ABI references