zoukankan      html  css  js  c++  java
  • 线程安全之原子性

    说明:此片博文理解尚浅,后期会逐步修改。

    0.概要

      首先介绍了原子性的概念,然后分别展示了Java中实现原子性的三种方法:Atonic包、synchronized,Lock,最后对三种方式实现做了简单的比较。

    1.原子性

      提供互斥访问,指的是同一个时刻只能由一个线程来进行操作。

    2.原子性之Atomic包 

      1)CAS(使用了Unsafe.CompareAndSwapxxx方法),这个方法:会通过一个do.while循环来判断工作内存(当前)中的值和主内存(底层)中的值是否一致,直到一致才执行相应的操作。

    3.原子性之锁

      JDK提供两种锁,一种是synchronized,是Java关键字,依赖JVM去实现锁,那么其在作用对象的作用范围内,同时只有一个线程能进行操作。

      其修饰的对象有如下四种:

      1)修饰代码块:大括号括起来的部分,作用于调用对象

      2)修饰方法:整个方法,作用于调用的对象

      3)修饰静态方法:整个静态方法,作用于所有对象

      4)修饰类:作用于所有对象

    4.原子性对比

    synchronized 不可中断锁,适合线程竞争不激烈,可持续性好
    Atomic 竞争激烈时候能维持常态,但只能同步一个值

    5.总结

    我不喜欢这个世界,我喜欢你
  • 相关阅读:
    8.22
    webstrom安装流程
    8.21
    8.20
    8.20学习笔记
    使用WebClient异步获取http资源
    导航栏,可直接使用
    asp.net mvc5实现单点登录
    使用C#调用Word的接口生成doc文件与html文件
    下载网页并保存
  • 原文地址:https://www.cnblogs.com/truekai/p/10859503.html
Copyright © 2011-2022 走看看