zoukankan      html  css  js  c++  java
  • 007 线程安全

    一 .概述

      线程依赖于进程分配资源,因此线程对变量的操作就变得更加的简单,我们可能会使用不同的线程对同一个变量进行操作,这就可能代理线程的安全性问题.

      线程的安全性问题归根结底就是正确性问题,如果我们无法对变量进行原子性操作,那么变量就可能出现不一致的状态,因此我们的程序的结果就会出现问题.

      在java之中,提供了不同的多种方式对线程的安全性问题进行解决,回到根源就是原子性的保障.


    二 . 原子性

      概念: 一个操作在完全结束之前是不可以被中断的,这个就是原子性的概念.

      问题 : 我们上面时候需要考虑原子性问题?

    [1]多线程并发的情况下

    [2]多线程共享变量

    [3]对变量进行读写操作

    上面的三个条件下,共享变量就会可能会出现不一致的状态.,在这种情况下我们就需要考虑原子性操作的问题.


    三  .原子性的解决方案

      在java这种,最早出现的解决方案就是锁机制,我们可能最早接触的就是synchronized关键词,这个关键词帮助我们实现了一个可重入的独占锁.

      至于上面提到的可重入和独占锁的概念,会在后面进行分析.

  • 相关阅读:
    Http record java
    Java String constructed from byte array has bad length
    Schema
    Scale-up(纵向扩展) vs Scale-out(横向扩展)
    数据同步
    JDBC and Oracle conn.commit and conn.setAutocommit not working properly
    DGIM
    Github Blog 搭建手册
    软件探索(一)
    经典书单 —— 人文社科
  • 原文地址:https://www.cnblogs.com/trekxu/p/9513986.html
Copyright © 2011-2022 走看看