• 欢迎访问 优知学院 请加入我们的架构交流分享群优知学院-架构师进阶
  • 如果您觉得这个博客非常有看点,那么赶紧使用Ctrl+D 收藏 :优知学院 吧!

彻底理解Volatile的实现原理|大厂面试必考题详解

彻底理解Volatile的实现原理|大厂面试必考题详解
Volatile属于面试必问,重要性不言而喻,今天重点来谈谈:Volatile的实现原理。 本节课重点会讲到以下5点: 1.Volatile关键字 2.Java内存模型 3.Volatile内存模型可见性 4.Volatile的工作原理 5.Volatile的源码案例 在谈Volatile之前,我们先回顾下Java内存模型的三要素:原子性、可见性、有序性,也就是大……继续阅读 »

陈睿 3个月前 (07-01) 766浏览 0评论 2个赞

Java多线程与并发系列从0到1全部合集,强烈建议收藏!

Java多线程与并发系列从0到1全部合集,强烈建议收藏!
在过去的时间中,我写过Java多线程与并发的整个系列。 为了方便大家的阅读,也为了让知识更系统化,这里我单独把Java多线程与并发的整个系列一并罗列于此,希望对有用的人有用,也希望能帮助到更多的人。   以下为整个目录,希望大家喜欢!   1:最全面的Java多线程学习概述 这一篇文章呢,我认为比较重要,学习任何一个东西,首先你得学会建立完整的技能框架,建……继续阅读 »

陈睿 6个月前 (03-18) 2082浏览 0评论 4个赞

ReentrantReadWriteLock的实现原理与锁获取详解

ReentrantReadWriteLock的实现原理与锁获取详解
我们继续Java多线程与并发系列之旅,之前我们分享了Synchronized 和 ReentrantLock 都是独占锁,即在同一时刻只有一个线程获取到锁。 然而在有些业务场景中,我们大多在读取数据,很少写入数据,这种情况下,如果仍使用独占锁,效率将及其低下。 针对这种情况,Java提供了读写锁——ReentrantReadWriteLock。 有点……继续阅读 »

陈睿 8个月前 (01-15) 1764浏览 0评论 4个赞

深度源码剖析AQS的实现原理

深度源码剖析AQS的实现原理
在并发编程领域,AQS号称是并发同步组件的基石,很多并发同步组件都是基于AQS实现,所以想掌握好高并发编程,你需要掌握好AQS。 本篇主要通过对AQS的实现原理、数据模型、资源共享方式、获取锁的过程,让你对AQS的整体设计有清晰了解,让你迈出高并发编程的第一步。 AQS AQS(AbstractQueuedSynchronizer)就是一个抽象的队列同步器……继续阅读 »

陈睿 9个月前 (12-31) 2124浏览 0评论 3个赞

线程的五大状态,以及线程之间的通信与协作

线程的五大状态,以及线程之间的通信与协作
在Java面试的时候,经常会问到Java并发编程相关的多线程、线程池、线程锁、线程通信等面试必考点,比如: Java并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项 Java并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景 Java并发编程系列:CountDownLatch、Semaphore等4大并发工……继续阅读 »

陈睿 1年前 (2019-07-03) 2950浏览 0评论 0个赞

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁
在Java并发场景中,会涉及到各种各样的锁,比如:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景,这些锁有对应的种类:公平锁,乐观锁,悲观锁等等,这篇文章来详细介绍各种锁的分类: 公平锁/非公平锁 可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 自旋锁……继续阅读 »

陈睿 2年前 (2018-12-04) 5332浏览 0评论 13个赞

Java并发容器的原理:7大并发容器详解、及使用场景

Java并发容器的原理:7大并发容器详解、及使用场景
之前谈过高并发编程系列: 高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景 高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解  高并发编程系列:4大JVM性能分析工具详解,及内存泄漏分析方案 高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8) ……继续阅读 »

陈睿 2年前 (2018-11-09) 5211浏览 0评论 13个赞

Java线程池的使用方式,及核心运行原理

Java线程池的使用方式,及核心运行原理
之前谈过多线程相关的4种常用Java线程锁的特点,性能比较、使用场景,今天主要分享线程池相关的内容,这些都是属于Java面试的必考点。 为什么需要线程池 java中为了提高并发度,可以使用多线程共同执行,但是如果有大量线程短时间之内被创建和销毁,会占用大量的系统时间,影响系统效率。 为了解决上面的问题,java中引入了线程池,可以使创建好的线程在指定……继续阅读 »

陈睿 2年前 (2018-11-08) 5445浏览 0评论 16个赞

4种常用Java线程锁的特点,性能比较、使用场景

4种常用Java线程锁的特点,性能比较、使用场景
多线程的缘由 在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。 使用多线程的理由之一是和进程相比,它是一种非常花销小,切换快,更"节俭"的多任务操作方式。 在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立……继续阅读 »

陈睿 2年前 (2018-11-07) 11805浏览 1评论 19个赞

线程池的实现原理、优点与风险、以及四种线程池实现

线程池的实现原理、优点与风险、以及四种线程池实现
为什么需要线程池 我们有两种常见的创建线程的方法,一种是继承Thread类,一种是实现Runnable的接口,Thread类其实也是实现了Runnable接口。但是我们创建这两种线程在运行结束后都会被虚拟机销毁,如果线程数量多的话,频繁的创建和销毁线程会大大浪费时间和效率,更重要的是浪费内存。那么有没有一种方法能让线程运行完后不立即销毁,而是让线程重复使用,继续执行其他的任……继续阅读 »

陈睿 2年前 (2018-10-20) 6801浏览 2评论 20个赞

最全多线程经典面试题和答案

最全多线程经典面试题和答案
Java实现线程有哪几种方式? 1、继承Thread类实现多线程 2、实现Runnable接口方式实现多线程 3、使用ExecutorService、Callable、Future实现有返回结果的多线程 多线程同步有哪几种方法? Synchronized关键字,Lock锁实现,……继续阅读 »

陈睿 2年前 (2018-09-20) 8104浏览 6评论 61个赞

阿里P8架构师谈:高并发与多线程的关系、区别、高并发的技术方案

阿里P8架构师谈:高并发与多线程的关系、区别、高并发的技术方案
什么是高并发? 高并发(High Concurrency)是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。 高并发的处理指标? 高并发相关常用的一些指标有: ……继续阅读 »

陈睿 2年前 (2018-08-29) 5908浏览 0评论 13个赞