logo头像
Snippet 博客主题

JDK源码分析之——Condition

简介Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),使用Condition的await()、sign...

JDK源码分析之——ReentrantLock

简介ReentrantLock是Lock接口的实现类,是一把可以支持重入的锁,静态内部抽象类Sync继承了AQS(AbstractQueuedSynchronizer,不了解AQS的可以看看JDK源码分析之——AQS),Sync的子类...

JDK源码分析之——FutureTask

简介FutureTask是提供了一个可取消的异步计算的过程类,FutureTask实现了Future的基本方法,提供了start和cancel操作,可以查询计算是否已经完成,并且可以获取计算的结果。结果只可以在计算完成之后获取,当计算...

Java垃圾收集器

简介如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。这里讨论的收集器基于JDK 1.7 Update 14之后的 HotSpot 虚拟机,这个虚拟机包含的所有收集器如下图所示: 上图展示了7种作用于不同分代的...

Java垃圾回收机制

简介Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙里面的人想出来。 Java内存运行时区域中的程序计数器、虚拟机栈、本地方法栈随线程而生灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出...

JDK源码分析之——ThreadLocal

简介ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 ThreadL...

Java异常处理机制

简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。而异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。Ja...

JDK源码分析之——CountDownLatch与CyclicBarrier

CountDownLatch与CyclicBarrier都是我们在并发编程中常用的工具,它们提供了一种控制并发流程的手段,今天我们通过源码分析来看看它的真面目。 1.CountDownLatchCountDownLatch中count...

JDK源码分析之——AQS

在Java高并发编程中,我们经常会用到ReentrantLock、CountDownLatch、Semaphore等同步类,它们的功能可能不尽相同,但是它们都有一个共同点,就是实现依赖了AQS(AbstractQueuedSynchr...

Java并发中遇到的锁

在Java高并发编程中,会遇到各种锁,这里简单介绍一下各种锁的分类。涉及到了以下内容: ①公平锁/非公平锁 ②可重入锁 ③独享锁/共享锁 ④互斥锁/读写锁 ⑤乐观锁/悲观锁 ⑥分段锁 ⑦偏向锁/轻量级锁/重量级锁 ⑧自旋锁 上面是很多...