• 集合的同步与非同步


    Java的集合中都说ArrayList 非同步、LinkedList 非同步、Vector 同步 、Stack 同步,线程安不安全,那么这里所说的同步,和线程安全是什么呢?

    在这里的非同步指的是,当使用线程和web的时候,对于这个集合对象进行操作,那么不同的线程,和不同的web客户端所获取的这个集合对象是不同的.所以是说不同步,且不在同一个线程,多线程的形式,是不安全的.

     

    比如说现在 线程A 和 线程B, 要拿到这个集合对象, 现在集合对象有[1,2,3].那么A在集合对象里添加了一下数字[1,2,3,4,5].那么这个时候B线程所取拿这个集合对象的时候,还是[1,2,3]而不是A已经修改好的集合[1,2,3,4,5].所以说这里的集合不同步,线程不安全.

       

    什么是线程安全问题?

     

    线程安全,其实指的就是内存的安全. 目前主流操作系统都是多任务多线程同时进行的.为了保证安全,每个进程只能访问分配额给自己的内存空间,而不能访问别的进程,这是由操作系统保障的.

    在每个进程的内存空间中都会有一块特殊的公共区域,通常称为 堆区(内存).进程内所有的线程都可以访问到该区域,这就是造成线程安全问题的潜在原因.

    所以, 线程安全 指的是,在堆区内存的数据由于可以被任何线程访问到,没有限制的情况下存在被意外修改的风险.

  • 相关阅读:
    [POJ3635]Full Tank? 题解
    洪水题解
    [HNOI2009]最小圈 题解
    Grazing on the Run 题解
    [BZOJ4237]稻草人 题解
    [POJ3783]Balls 题解
    [POI2005]Bank notes 题解
    字符串题解
    pyinstaller利用spec文件打包的使用模板
    Pycharm2020 永久激活
  • 原文地址:https://www.cnblogs.com/nineberg/p/12272858.html
Copyright © 2020-2023  润新知