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操作,可以查询计算是否已经完成,并且可以获取计算的结果。结果只可以在计算完成之后获取,当计算...

JDK源码分析之——ThreadLocal

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

JDK源码分析之——CountDownLatch与CyclicBarrier

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

JDK源码分析之——AQS

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

Java并发中遇到的锁

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

关于多线程的锁优化

1.如何提供锁的性能1.1减小锁持有时间:对于使用锁进行并发控制的应用程序而言,在锁竞争的过程中,单个线程的持有时间与系统性能有着直接的关系。减少锁的持有时间有助于降低锁冲突的可能性,进而提高系统的并发能力。 1.2减小锁粒度:所谓减...

Java多线程基础

1.基本特性1.1特性①原子性:原子性是指一个操作是不可中断的; ②可见性:可见性是指当一个线程修改了某一个共享变量的值,其他线程是否能够立即知道这个修改; ③有序性:即程序执行的顺序按照代码的先后顺序执行。 1.2指令重排在计算机执...