自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiaoai1994的博客

一个Java行业的小学生,卷王之中的卷心菜

  • 博客(12)
  • 资源 (2)
  • 收藏
  • 关注

原创 [多线程] - AQS简介

文章目录一、AQS简介1. 什么是AQS2. AQS类的实现一、AQS简介1. 什么是AQSAQS是 AbstractQueuedSynchronizer的简写,中文译作抽象同步队列,它是实现同步器的基础组件,JUC(Java.util.cuncurrent包)中的大多数锁都是通过AQS设计实现的,在大多数情况下我们可能会很少能够接触到AQS,但是了解下AQS的原理还是有助于我们理解Java中的锁机制。2. AQS类的实现为了方便理解,我们先将AQS的类图粘上(下文中AbstractQueuedS

2020-12-29 14:06:03 211 2

原创 [多线程] - Java中的锁的分类

文章目录前言一、乐观锁和悲观锁二、共享锁与排它锁三、公平锁和非公平锁四、可重入锁和不可重入锁五、轻量级锁,偏向锁,自旋锁,重量级锁前言相信很多同学在学习多线程的时候,被各种各样的锁弄得七荤八素,今天我就准备针对这些锁做一个梳理,喜欢的同学请记得一键三连!一、乐观锁和悲观锁首先我们先来说下乐观锁和悲观锁,乐观锁与悲观锁最初是数据库设计者提出的改变,后在JAVA的并发包中也提供了实现。乐观锁和悲观锁主要是设计者针对线程之间不同的竞争程度提出的两种优化策略。当前线程间对于共享变量如果不存在竞争或者竞争并不

2020-12-23 10:33:26 148 1

原创 [多线程] - 锁的升级与对比(java中的偏向锁、轻量级锁、重量级锁)

文章目录前言一、偏向锁1. 什么是偏向锁2. 偏向锁的实现原理2.1 对象头2.2 偏向锁的获取2.3 偏向锁的关闭二、轻量级锁1. 什么是轻量级锁2. 轻量级锁的获取3. 轻量级锁的解锁三、重量级锁1. 什么是重量级锁2. 重量级锁的获取四、锁的升级与特点1. 锁的升级2. 锁的特点1. 锁的标志位2. 锁的特点前言最近整理了很多关于多线程的理论概念与底层实现,这里我尽量的使用图文结合的方式方便大家理解,如果有不清楚的地方也欢迎大家留言,我基本每天都在,可以在看到的第一时间回复。一、偏向锁1. 什

2020-12-22 15:18:15 473 4

原创 [多线程] - CAS算法(乐观锁与悲观锁)

文章目录一、乐观锁与悲观锁二、CAS算法一、乐观锁与悲观锁在日常的开发中为了保证共享变量的线程安全,大多数程序员的潜意识行为就是为这个共享变量的作用域加锁,就比如常见的使用synchronized关键字来同步代码块。但是简单粗暴的加锁真的是最优解吗?假如被锁住的共享变量并不会被频繁修改,但是synchronized实现的同步无疑会引起线程的堵塞从而降低程序的运行效率。这个时候我们有什么思路可以优化吗?当然可以,JDK的设计者基于这种情况早已给出了很多种解答方式。在JDK1.5后java通过排它锁,乐观锁

2020-12-21 14:06:12 753 1

原创 [多线程] - java内存模型(JMM内存模型)

文章目录前言一、Java内存模型的基础二、 顺序一致性模型1. 什么是顺序一致性模型2.as-if-serial3.happens-before三、后记前言《Java并发编程的艺术》的前三章内容有点乱,我在尽自己最大的能力捋一下前三章的核心知识点分享出来,这里还是和之前的想法一样,如果是没有基础的小白,千万不要买这本书,推荐可以去看下《Java并发编程之美》。一、Java内存模型的基础之前我提出过一个这么的概念来简化大家对线程的理解:无论我们在编码层做多么复杂的业务处理,对于计算机而言就只有三个

2020-12-17 17:02:26 484 3

原创 [多线程] - 并发编程的性能瓶颈(CPU上下文切换与资源限制)

文章目录前言一、并发编程的瓶颈二、CPU的上下文简介1. 什么是CPU的上下文2. 上下文切换3. 如何减少上下文切换三、资源限制1. 什么是资源限制2.如果避免资源限制四、死锁前言《Java多线程编程核心技术》中相关的内容已经更新的差不多了,接下来我会将《Java并发编程的艺术》中有价值的知识点做一个梳理更新,顺便分享下电子书的链接,该系列文章配合电子书一起学习效果更佳。Java并发编程的艺术链接:https://pan.baidu.com/s/18H60E_8KDO9uNIuWdghzcg提

2020-12-16 15:07:16 1244 1

原创 [多线程] - Lock对象的使用详解

文章目录一、Lock对象简介二、Lock对象的应用1.Lock对象的同步性验证1)Lock接口的实现类2)Lock对象实现同步3)多代码块之间的同步性4)unlock的使用2. Condition与多路通知1)condition实现wait/notify通知模型2)选择性通知3)Condition对象的总结4) Condition对象的面试题三、Lock对象的锁特性1.公平锁与非公平锁2.读写锁(共享锁与排它锁)一、Lock对象简介按照惯例,我们在介绍一个对象前首先要翻译一下他的语义:什么,锁?是不

2020-12-11 17:58:57 1199 2

原创 [多线程] - ThreadLocal的使用

文章目录一、TreadLocal是什么二、ThreadLocal的简单应用三、ThreadLocal的源码分析4、InheritableThreadLocal一、TreadLocal是什么在讲述概念前,我们还是先看下官方文档是怎么定义的:观看官方文档,我们可以将Threadlocal做如下简单的定义:ThreadLocal是指的用来保存线程局部变量的一个类,既然用来保存数据,代表我们可以将ThreadLocal看做是一个容器。ThreadLocal是用来解决多个线程使用同一个共享变量的问题,

2020-12-08 16:10:24 526 1

原创 [多线程] - join方法的使用详解

文章目录一、前言二、join方法1. join的Api简介2. join方法的实现3.总结一、前言按照惯例,我们在讲一个知识点之前习惯性的提出一个业务场景的应用来帮助理解,今天咱们就通过一个渣男的案例来讲讲join的相关特性:土木三班陈同学是一个很有名气的渣男,最近陈同学刚刚跟女朋友分了手,处于空窗期的他打开了微信附近的人,挑了个他觉得长得还不错的姑娘发起了搭讪请求。public class ChatUp { // 被搭讪人是否回复 public volatile static boolea

2020-12-07 16:12:54 1722 1

原创 《Java多线程编程核心技术 第二版》 知识点总结

第一章、Java多线程技能1.线程的入门概念 2.从Thread类的构造函数分析创建一个线程需要的基本元素3.如何优雅的停止一个线程第二章、对象及变量的并发访问4.synchronized关键字入门(同步方法与同步代码块)5.volatile关键字第三章、线程间通信6.wait及notify的简介(线程间的通信)...

2020-12-06 16:26:01 169 1

原创 [多线程] - 线程间的通信(wait及notify方法的应用)

文章目录一、前言1. 什么是线程间的通信2. 提供一个简单的业务场景二、 wait及notify的使用1. wait方法的API简介2. notify方法的API简介3. 新的业务需求4. 线程的假死5. notifyAll三、补充1. wait和notify方法的锁状态2. wait和sleep的区别一、前言1. 什么是线程间的通信我想看到标题很多人想到的第一反应大概是疑问什么是线程间的通信?其实这个概念很好理解,在我们的实际的业务开发中,很多场景都是多个线程之间配合进行工作的,就好比一条工厂的流水

2020-12-04 18:09:56 487 1

原创 [多线程] - volatile关键字的特性

文章目录一、volatile关键字是什么二、volatile的引入三、volatile的特性1.volatile与可见性2.volatile与原子性3.volatile与有序性四、volatile面试相关一、volatile关键字是什么在日常的面试中,volatile无疑是被提到频率非常高的一个问题,在各大公众号中也充满了对volatile关键字的解析,那么volatile究竟是什么呢???都被应用在了哪些地方呢???首先在理解保留字方面,我觉得理解这个保留字的中文含义是有助于我们记忆的,那么打开

2020-12-02 13:56:10 485 10

struts2技术内幕+struts2权威指南

《Struts2技术内幕:深入解析Struts2架构设计与实现原理》由国内极为资深的Struts2技术专家(网名:downpour)亲自执笔,iteye兼CSDN产品总监范凯(网名:robbin)以及51CTO等技术社区鼎力推荐。《Struts2技术内幕:深入解析Struts2架构设计与实现原理》以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2的技术内幕提供了大量真知灼见。同样重要的是,《Struts2技术内幕:深入解析Struts2架构设计与实现原理》还深入挖掘并分析了Struts2源代码实现中蕴含的大量值得称道的编程技巧和设计模式,这对开发者从Struts2的设计原理上去掌握和悟透Web层开发的要点和本质提供了绝佳的指导。 《Struts2技术内幕:深入解析Struts2架构设计与实现原理》主要分为3大部分,内容安排具有极强的逻辑推理性,章和章之间互相呼应且互为印证。知识准备篇首先介绍了获取、阅读和调试Struts2源代码的方法,以及Struts2源代码的组织形式;然后厘清了Web开发中极易混淆的一些重要概念,以及Struts2的核心技术、宏观视图、微观元素、配置元素等,提纲挈领地对Struts2进行了多角度的讲解。核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对Struts2中的精华——OGNL表达式引擎和XWork框架的原理及机制进行了全面深入的分析和讲解。运行主线篇首先对Struts2的两大运行主线——初始化主线和HTTP请求处理主线进行了深入的剖析,然后对Struts2的扩展机制进行了解读和抽象

2018-03-03

j2ee核心模式

《J2EE核心模式》(原书第2版):“Java领域的版图上撒满了各种类库、工具和技术规范。而缺乏的则是把这些内容融合在一起、解决真实情况下的问题的专业能力。本书中的这些模式,成为了J2EE软件建设过程中的智能水泥。 ——John Vlissides,《设计模式》的作者之一   “《J2EE核心模式》的作者们提取了一组真正实用的模式。他们介绍了应该如何应用这些模式、如何重构你的系统以便从模式中获益。这就像有一个专家组坐在你旁边一样。 ——Grady Booch,Rational软件公司首席科学家   “作者们介绍了大量对于应用架构极有帮助的模式,这是一项了不起的工作。单单是书中的‘重构’部分就值整本书的价钱!” ——Craig McClanahan,Struts首席架构师,JavaServer Faces技术规范组负责人   开发者们常常把“学会一种技术”和“学会使用这种技术进行设计”混为一谈。在本书中,Sun Java中心的资深架构师们分享了他们多年积累的使用J2EE技术进行设计的经验。   本书关注的主要内容,是使用J2EE的核心技术蜒包括JSPTM、Servlet、EJBTM、JMSTMAPI等蜒实现企业应用过程中的模式、最佳实践、设计策略以及经过验证的解决方案。其中的J2EE模式目录包括21个模式以及大量策略,有助于记录、促成运用以上技术的最佳实践

2018-03-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除