美文网首页
Java——线程安全和不安全的集合

Java——线程安全和不安全的集合

作者: 含泪若笑 | 来源:发表于2019-07-08 16:30 被阅读0次

    线程安全工作原理: jvm中有一个main memory对象,每一个线程也有自己的working memory,一个线程对于一个变量variable进行操作的时候, 都需要在自己的working memory里创建一个copy,操作完之后再写入main memory。 当多个线程操作同一个变量variable,就可能出现不可预知的结果。 

    而用synchronized的关键是建立一个监控monitor,这个monitor可以是要修改的变量,也可以是其他自己认为合适的对象(方法),然后通过给这个monitor加锁来实现线程安全,每个线程在获得这个锁之后,要执行完加载load到working memory 到 use && 指派assign 到 存储store 再到 main memory的过程。才会释放它得到的锁。这样就实现了所谓的线程安全。

    线程安全:

    Vector 、HashTable 、StringBuffer 

    非线程安全的集合对象:

    ArrayList 、LinkedList、HashMap、HashSet、TreeMap、TreeSet、StringBulider:

    相关文章

      网友评论

          本文标题:Java——线程安全和不安全的集合

          本文链接:https://www.haomeiwen.com/subject/nlkahctx.html