zoukankan      html  css  js  c++  java
  • 何为线程安全,如何实现线程安全(线程同步)?

    一、线程安全

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

    所以线程安全指的是,在堆内存中的数据由于可以被任何线程访问到,在没有限制的情况下存在被意外修改的风险。即堆内存空间在没有保护机制的情况下,对多线程来说是不安全的地方,因为你放进去的数据,可能被别的线程“破坏”。

    https://zhuanlan.zhihu.com/p/67905621

    二、如何实现线程安全(线程同步)?

    1.使用synchronized 关键字 同步方法

    2.使用synchronized 关键字同步代码块

    3.使用特殊域变量(volatile)实现线程同步

    4.使用重入锁实现线程同步

      如果synchronized关键字能满足用户的需求,就用synchronized,因为它能简化代码 。如果需要更高级的功能,就用ReentrantLock类,此时要注意及时释放锁,否则会出现死锁,通常在finally代码释放锁。

    5.使用局部变量ThreadLocal实现线程同步

       如果使用ThreadLocal管理变量,则每一个使用该变量的线程都获得该变量的副本,副本之间相互独立,这样每一个线程都可以随意修改自己的变量副本,而不会对其他线程产生影响。

    https://www.cnblogs.com/xiaoxi/p/7679470.html

  • 相关阅读:
    栈的操作总结
    C语言复习大纲
    生理周期
    石子合并
    幸运数字
    最长&最短文本
    C++引用
    C++入门
    直角三角形
    思维的囚徒--读书摘记和自己的肤浅解读--2021.1
  • 原文地址:https://www.cnblogs.com/jingpeng77/p/13549127.html
Copyright © 2011-2022 走看看