标签:synchronized

Java

这篇 ReentrantLock 看不懂,加我我给你发红包

21

小丁 发布于 2020-01-20

点击蓝色“ zhisheng ”关注我哟 加个“ 星标 ”,一起快乐成长 回答一个问题 在开始本篇文章的内容讲述前,先来回答我一个问题,为什么 JDK 提供一个 synchronized 关键字之后还要提供一个 Lock 锁,这不是多此一举吗?难道 JDK 设计人员都是沙雕吗? ...

阅读(27)评论(1)赞 (0)

Java

Spring(二)核心容器 – 简介 、BeanFactory、ApplicationContext

1

Harries 发布于 2020-01-20

前言 在上篇文章中,和大家一起讨论了 Spring 的整体架构,其大致分为五个模块:核心容器、AOP、Web、Data 数据访问、Test模块。其中核心容器是 Spring 的核心部分,其它模块也都依赖于该容器。这里和就大家一起深入讨论 Spring 的容器,它的作用是什么、怎么...

阅读(11)评论(0)赞 (0)

Java

Parallel Stream 的错误实践

1

尖兵 发布于 2020-01-19

一、前言 Java8 Stream 流的出现,极大的简化了业务需求中对集合数据的加工处理操作。虽然好用,但是一旦使用不当,也会带来意想不到的结果,本文记录使用 Parallel Stream 的错误实践。 List<Object> sourceList = ...; ...

阅读(10)评论(0)赞 (0)

Java

你真的了解 volatile 关键字吗?

puefu.he 发布于 2020-01-19

今天,让我们一起来探讨Java 并发编程中的知识点:volatile 关键字 本文主要从以下三点讲解 volatile 关键字: volatile 关键字是什么? volatile 关键字能解决什么问题?使用场景是什么? volatile 关键字实现的原理? 在 Sun 的 JD...

阅读(9)评论(0)赞 (0)

Spring

SpringSecurity 初始化流程源码

8

zhuangli 发布于 2020-01-19

SpringSecurity 初始化流程源码 本篇主要讲解 SpringSecurity初始化流程的源码部分,包括核心的 springSecurityFilterChain 是如何创建的,以及在介绍哪里可以扩展个性化的配置,SpringSecurity源码其实是蛮难得 各种Bui...

阅读(19)评论(0)赞 (0)

Java

从源码理解Java虚引用

7

尖兵 发布于 2020-01-19

在jdk1.2之后,java对引用的概念进行了扩充。将引用分为了强引用,软引用,弱引用,和虚引用四种。 强引用:即我们平常说的引用,指在程序代码中普遍存在的引用赋值。在垃圾回收中,只要强引用还存在,那么当前对象就永远不会被回收。 软引用:比强引用弱一级的引用关系。在系统将要发生内...

阅读(11)评论(0)赞 (0)

Java

CAS机制及AtomicInteger源码分析

hellas 发布于 2020-01-19

CAS即 Compare And Swap 对比交换,区别于悲观锁,借助CAS可以实现区别于synchronized独占锁的一种乐观锁,被广泛应用在各大编程语言之中。Java JUC底层大量使用了CAS,可以说 java.util.concurrent 完全是建立在CAS之上的。...

阅读(11)评论(0)赞 (0)

Java

Synchronized内容总结(三)

1

songhua.gao 发布于 2020-01-19

前面两部分谈到多线程对内部锁的优化,以及代码中对锁的优化。是从减少竞态的角度来优化程序的。 如果从提高线程执行效率,来对多线程程序进行优化,自然让人联想到了线程池技术。 基本概念与原理 Java 线程池会生成一个队列,要执行的任务会被提交到这个队列中。有一定数量的线程会在队列中取...

阅读(10)评论(0)赞 (0)

Java

Synchronized优化总结(一)

2

hellas 发布于 2020-01-19

当使用 Java 多线程访问共享资源的时候,会出现竞态的现象。即随着时间的变化,多线程“写”共享资源的最终结果会有所不同。 为了解决这个问题,让多线程“写”资源的时候有先后顺序,引入了锁的概念。每次一个线程只能持有一个锁进行写操作,其他的线程等待该线程释放锁以后才能进行后续操作。...

阅读(10)评论(0)赞 (0)

Java

【Java并发基础】Java内存模型解决有序性和可见性

3

darida 发布于 2020-01-18

前言 解决并发编程中的可见性和有序性问题最直接的方法就是禁用CPU缓存和编译器的优化。但是,禁用这两者又会影响程序性能。于是我们要做的是 按需禁用CPU缓存和编译器的优化 。 如何按需禁用CPU缓存和编译器的优化就需要提到 Java内存模型 。Java内存模型是一个复杂的规范。其...

阅读(12)评论(0)赞 (0)

Java

java面试题-集合类

wenming.gapo 发布于 2020-01-18

准备年后要跳槽,所以最近一直再看面试题,并且把收集到的面试题整理了以下发到博客上,希望对大家有所帮助。 首先是集合类的面试题 1.  HashMap 排序题,上机题。 已知一个 HashMap<Integer,User>集合, User 有 name(Str...

阅读(14)评论(0)赞 (0)

Spring

Eureka源码之二:服务注册

1

songhua.gao 发布于 2020-01-17

点击上方蓝色字关注我们~ Eureka源码剖析之一:初始化-启动 EurekaClient在启动时会进行一系列初始化操作,本篇文章主要解析EurekaClient端向EurekaServer端发起注册请求的具体过程,具体分为EurekaClient端发送请求和EurekaServ...

阅读(14)评论(0)赞 (0)

Java

聊聊artemis ClientConsumer的handleRegularMessage

xirruiqiang 发布于 2020-01-17

序 本文主要研究一下artemis ClientConsumer的handleRegularMessage handleRegularMessage activemq-artemis-2.11.0/artemis-core-client/src/main/java/org/apa...

阅读(17)评论(0)赞 (0)

Java

Mybatis原理之数据源和连接池

3

xiaoli.he 发布于 2020-01-17

在Java工程项目中,我们常会用到 Mybatis 框架对数据库中的数据进行增删查改,其原理就是对 JDBC 做了一层封装,并优化数据源的连接。 ​ 我们先来回顾下 JDBC 操作数据库的过程。 JDBC 操作数据库 JDBC 操作数据库的时候需要指定 连接类型、加载驱动、建立连...

阅读(16)评论(0)赞 (0)

Java

逐行解读HashMap源码-PIC

3

xiaoli.he 发布于 2020-01-17

【51CTO.com原创稿件】 一、写在前面 相信读者也看过了不少讲解 HashMap 源码的文章了,笔者认为,一切脱离源码去讲原理的都是泛泛而谈。一些所谓的原理大都是阅读源码之后的个人概括,这些概括参差不齐,再加上没有阅读源码,读者们是很难有切身体会的。正因如此,笔者逐行分析了...

阅读(18)评论(0)赞 (0)

Java

ReentrantLock配合Condition实现生产者消费者模式

xirruiqiang 发布于 2020-01-16

ReentrantLock和Condition ReentrantLock是一个可重入的独占锁,和synchronized相比功能更加强大,synchronized底层是基于JVM虚拟机实现的,而ReentrantLock底层则是基于AQS(AbstractQueuedSynch...

阅读(20)评论(0)赞 (0)