zoukankan      html  css  js  c++  java
  • 为什么说一个对象是线程安全的?

    info

    比如

    线程不安全类:hashmap,arraylist

    线程安全:stringbuffer,concurrenthashmap

    在多线程环境下,对一个对象访问,不需要额外加锁(synchronized),就可以,那这个对象就是线程安全.

    比如stringBuffer

    因为这个每个方法都加了synchronized。

    什么样情况下会发生线程不安全问题?

    多个线程访问同一个资源,需要考虑线程安全。

    单线程情况不需要考虑。

    比如,在多线程环境下,
    在一个方法内,
    用StringBuilder对字符串进行拼接,
    问?这种情况是线程安全还是不安全?

    答案:是线程安全。
    为什么?
    因为多个线程访问,每一个线程独享一个StringBuilder
    这是一对一,不是多个线程访问同一个资源
    因为StringBuilder不是共享的,是每一个线程私有的,它在方法内。

  • 相关阅读:
    320 Generalized Abbreviation
    319. Bulb Switcher
    三条用人原则
    Go 编码问题的解决方案
    C# MVC js 跨域
    apidoc接口文档的快速生成
    go语言学习
    C#系统之垃圾回收
    WCF项目启动时错误处理
    XML之XPath
  • 原文地址:https://www.cnblogs.com/hellosiyu/p/13735380.html
Copyright © 2011-2022 走看看