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

  • 相关阅读:
    python 基于gevent协程实现socket并发
    python asyncio
    python 池 协程
    python
    python 守护进程
    python 线程 threading模块
    python 安装Django失败处理
    python 队列
    python 锁
    继承,抽象类,多态,封装
  • 原文地址:https://www.cnblogs.com/jingpeng77/p/13549127.html
Copyright © 2011-2022 走看看