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

    一 .概述

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

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

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


    二 . 原子性

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

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

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

    [2]多线程共享变量

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

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


    三  .原子性的解决方案

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

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

  • 相关阅读:
    CSU1018: Avatar
    ZOJ
    HDU—4463 Outlets 最小生成树
    查询文件中值所在的路径
    mysql语句查询时间检测
    phpmyadmin修改root密码
    检测Linux glibc幽灵漏洞和修补漏洞
    监控宝安装手册
    ubuntu安装环境软件全文档
    ubuntu mysql主从库的搭建
  • 原文地址:https://www.cnblogs.com/trekxu/p/9513986.html
Copyright © 2011-2022 走看看