博客专栏  >  编程语言   >  死磕Java

死磕Java

死磕Java,征服Java,向成神路上奋进

关注
1156 已关注
37篇博文
  • 【死磕Java并发】-----J.U.C之并发工具类:CountDownLatch

    此篇博客所有源码均来自JDK 1.8 在上篇博客中介绍了Java四大并发工具一直的CyclicBarrier,今天要介绍的CountDownLatch与CyclicBarrier有点儿相似。Cycli...

    2017-04-24 20:26
    4806
  • 【死磕Java并发】-----J.U.C之并发工具类:CyclicBarrier

    此篇博客所有源码均来自JDK 1.8 CyclicBarrier,一个同步辅助类,在API中是这么介绍的:它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。...

    2017-04-13 18:06
    5549
  • 【死磕Java并发】----深入分析CAS

    CAS,Compare And Swap,即比较并交换。Doug lea大神在同步组件中大量使用CAS技术鬼斧神工地实现了Java多线程的并发操作。整个AQS同步组件、Atomic原子类操作等等都是以...

    2017-04-07 20:08
    6217
  • 【死磕Java并发】-----J.U.C之Condition

    此篇博客所有源码均来自JDK 1.8 在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、notify()系列方法可以实现等待/通知模式。在Java SE5...

    2017-04-05 18:21
    5788
  • 【死磕Java并发】-----J.U.C之读写锁:ReentrantReadWriteLock

    此篇博客所有源码均来自JDK 1.8 重入锁ReentrantLock是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少。然而读服...

    2017-03-29 09:21
    5482
  • 【死磕Java并发】-----J.U.C之重入锁:ReentrantLock

    此篇博客所有源码均来自JDK 1.8 ReentrantLock,可重入锁,是一种递归无阻塞的同步机制。它可以等同于synchronized的使用,但是ReentrantLock提供了比synchro...

    2017-03-26 21:19
    4423
  • 【死磕Java并发】-----J.U.C之AQS:阻塞和唤醒线程

    此篇博客所有源码均来自JDK 1.8 在线程获取同步状态时如果获取失败,则加入CLH同步队列,通过通过自旋的方式不断获取同步状态,但是在自旋的过程中则需要判断当前线程是否需要阻塞,其主要方法在acqu...

    2017-03-23 21:41
    5092
  • 【死磕Java并发】-----J.U.C之AQS:同步状态的获取与释放

    此篇博客所有源码均来自JDK 1.8 在前面提到过,AQS是构建Java同步组件的基础,我们期待它能够成为实现大部分同步需求的基础。AQS的设计模式采用的模板方法模式,子类通过继承的方式,实现它的抽象...

    2017-03-13 17:30
    3503
  • 【死磕Java并发】-----J.U.C之AQS:CLH同步队列

    此篇博客所有源码均来自JDK 1.8 在上篇博客【死磕Java并发】—–J.U.C之AQS:AQS简介中提到了AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。CLH同步队列是一个FIFO双...

    2017-03-07 22:11
    5032
  • 【死磕Java并发】-----J.U.C之AQS:AQS简介

    Java的内置锁一直都是备受争议的,在JDK 1.6之前,synchronized这个重量级锁其性能一直都是较为低下,虽然在1.6后,进行大量的锁优化策略(【死磕Java并发】—–深入分析synchr...

    2017-03-05 22:26
    4473
  • 【死磕Java并发】-----Java内存模型之总结

    经过四篇博客阐述,我相信各位对Java内存模型有了最基本认识了,下面LZ就做一个比较简单的总结。总结JMM规定了线程的工作内存和主内存的交互关系,以及线程之间的可见性和程序的执行顺序。一方面,要为程序...

    2017-03-03 12:58
    4196
  • 【死磕Java并发】-----Java内存模型之从JMM角度分析DCL

    DCL,即Double Check Lock,中卫双重检查锁定。其实DCL很多人在单例模式中用过,LZ面试人的时候也要他们写过,但是有很多人都会写错。他们为什么会写错呢?其错误根源在哪里?有什么解决方...

    2017-02-28 18:45
    1568
  • 【死磕Java并发】-----Java内存模型之分析volatile

    前篇博客【死磕Java并发】—–深入分析volatile的实现原理 中已经阐述了volatile的特性了: volatile可见性;对一个volatile的读,总可以看到对这个变量最终的写; vola...

    2017-02-23 20:27
    2926
  • 【死磕Java并发】-----Java内存模型之重排序

    在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重排序,但是不能随意重排序,不是你想怎么排序就怎么排序,它需要满足以下两个条件: 1. 在单线程环境下不能改变程序运行的结果; 2. 存在...

    2017-02-20 08:44
    3550
  • 【死磕Java并发】-----Java内存模型之happens-before

    在上篇博客(【死磕Java并发】—–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题。那么我们正确使用同步、锁的情况下...

    2017-02-13 12:02
    2279
  • 【死磕Java并发】-----深入分析volatile的实现原理

    通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使...

    2017-02-08 17:51
    3165
  • 【死磕Java并发】-----深入分析synchronized的实现原理

    记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线...

    2017-02-05 21:48
    16179

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部