zoukankan      html  css  js  c++  java
  • java并发回答

    java 线程安全比较重要的点:
     
    在 java 编程中,记住这些关键点可以帮你避免一些严重的并发问题,比如条件竞争或死锁。
     
    1)、不可变对象默认是线程安全的,因为他们一旦被创建就不会被修改。比如 String 是不可变对象,是线程安全的。只读、final 类型的变量也是线程安全的
    为什么String是不可变:传参或者其他时候,不会像StringBuilder那样被其他线程改变了他值
    https://blog.csdn.net/zhangjg_blog/article/details/18319521
     
    2)、本地变量也是线程安全的,因为每个线程都有自己的变量 copy.使用本地变量是一种保证代码线程安全的好方法。(ThreadLocal)
     
    3)、使用线程安全的类: Vector, Hashtable, ConcurrentHashMap, String etc.
     
    4) 、Volatile 关键字
    实现了可见性(读写都要刷新到内存),有序性(先读,后写),没有可见性
    AtomicXX使用了cas,比较并交换算法,比较旧值,是原来的就是交换(操作),不是就证明有其他cpu在并发,那就继续尝试
     
    5)、锁也是一种线程安全的方式
     
     
  • 相关阅读:
    循环语句
    JAVA-数据类型、变量、常量
    JAVA——程序流程控制——循环语句——for循环(打印三角形)
    循环语句
    JAVA基础学习1
    新手上路
    mysql内置函数之事务
    mysql内置功能
    mysql内置函数之视图
    pymysql模块
  • 原文地址:https://www.cnblogs.com/vhyc/p/9352622.html
Copyright © 2011-2022 走看看