zoukankan      html  css  js  c++  java
  • java 导致多线程数据安全问题的原因

    以多窗口买票为例。

    多线程操作共享数据存在安全问题。

    是由于数据操作的原子性被破坏导致的。

    if语句和之后的operate语句应该具有原子性。没有锁,在if 与 operate 之间可能数据被其他线程修改了。导致数据安全问题。

    导致原子性丢失的原因有多个,比如线程自己阻塞,cpu资源调度导致线程挂起等。

    这里原子性导致的数据安全问题,应该与可见性导致的安全问题分开。

    可见性问题是因为一个线程修改了数据,其他线程没有从共享内存中及时刷新工作内存导致的。通常出现在高并发场景,比如多个线程同时高并发的修改某个共享变量。

  • 相关阅读:
    css 基础
    css 基础-1
    html 入门2-表
    CMDB (后台管理) CURD 插件
    序列化
    AES(高级加密)
    API验证
    数据库取时间(分组)
    用户权限 (知识点)
    xss 过滤
  • 原文地址:https://www.cnblogs.com/wllhq/p/13846478.html
Copyright © 2011-2022 走看看