JUC(线程高级)

作者: 周小鑫001 | 来源:发表于2018-04-28 11:26 被阅读183次

一。volatile 关键字:当多个线程进行操作共享数据时。可以保证内存中数据的可见

                volatile相较于synchronized  是一种轻量级的同步策略

                注意事项:volatile   不具备 “互斥性”

                                    volatile  不能保证变量的  “原子性”

二。原子变量。jdk1.5以后java.util.concurrent.atomic 包下提供了常用的原子变量

                1.volation   保证内存可见性

                2.CAS 算法保证了数据的原子性:

                        CAS算法是硬件对于并发操作共享数据的支持

                            CAS包含了三个操作数,1.内存值V,2.预估值A。3更新值B,(当且仅当V==A时,V=B可以,否则什么都不做)

    三。ConcurrentHasp同步容器类是java5增加的线程安全的哈希表,对多线程的操作,介于hashMap和Hashtable之间,

            内部采用了‘锁分段’ 机制代理Hash的独占锁,进而提高性能

    四。CountDownLatch,一个同步辅助类,在完成一组蒸菜其他线程中执行的操作之前,它允许,一个或多个线程一直等待

                        闭锁:在完成某些运算时,只有其它线程运算全部完成,当前运算才会进行

    五。condition

            condition 接口是描述了可能会与锁有管理的条件变量,这些变量在用法上,使用Object.wait 访问的隐式监听器类似,但提供了更强大的功能,需要特别指出的是,单个lock可以与多个从condition对象管理,,condition方法的名称与对应的Object 版本中的不同,

            conditon中,notity ,wait, notifyAll方法对应的分别是,single,await,singleAll

            condition 实例实质上被绑定到一个锁上,要为特定的Lock 实例获的condition实例,请使用其newCondition方法。

    六,ReaderWriteLock(乐观锁)

                    “写写/读写 "    需要互斥

                    读读之间不需要互斥

    七。锁的一些使用方法注意事项:

                    1.非静态方法的锁默认为this,静态方法的锁为对应的class实例

                    2.某一时刻只能有一个线程持有锁,无论有多少个方法

相关文章

  • Chapter 16 . JUC 线程高级

    阅读原文 Chapter 16 . JUC 线程高级 16.1 Java JUC 简介 在 Java 5.0 提...

  • JUC(线程高级)

    一。volatile 关键字:当多个线程进行操作共享数据时。可以保证内存中数据的可见 volati...

  • JUC线程高级教程

    JUC 原创者:文思,感谢尚硅谷,资料来源于尚硅谷 目录: 1、volatile关键字与内存可见性 2、原子变量与...

  • 一、什么是JUC

    1、JUC简介 在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。JUC 就是 java...

  • 震撼来袭!京东架构师手写JUC技术笔记,看过的人都说好!

    什么是JUC 在Java中,线程部分是一个重点,本篇文章说的JUC也是关于线程的。JUC就是java.util ....

  • JUC

    * 1、JUC的概念 1.1什么事JUC 1.2.1:进行与线程 1.2.2:线程的基本状态 (1)NEW新建 (...

  • JUC线程高级---ConcurrentHashMap和闭锁

    **版权声明:本文为小斑马伟原创文章,转载请注明出处!ConcurrentHashMap:同步容器类是Java 5...

  • JUC线程高级---线程控制通信Condition

    **版权声明:本文为小斑马伟原创文章,转载请注明出处! 为了避免虚假唤醒问题,使用while循环,取消if els...

  • JUC

    前言: 在Java中,线程部分是一个重点,本篇文章说的JUC也是关于线程的。JUC就是java.util .con...

  • 高并发编程06 ~ AQS:AbstractQueuedSych

    前面的章节中,我们已经解除到了JUC,JUC可以大大的提高线程的安全性,而JUC的核心则是AQS。 AQS底层原理...

网友评论

    本文标题:JUC(线程高级)

    本文链接:https://www.haomeiwen.com/subject/zvgakftx.html