Java 锁系列(三)——ReentrantLock源码分析

ReentrantLock 是一个可重入的独占锁,是基于 AQS(AbstractQueuedSynchronized,抽象队列式同步器)实现的,它有公平锁和不公平锁两种实现方式。简单查看源码,可以发现 ReentrantLock 其实是一个代理的模式,Reentranlock 的核心是其内部继承自 AbstractQueuedSynchronized 的抽象类 Sync,将 Sync 作为锁的同步基础,其中加锁/解锁等操作其实都是由 Sync 对象完成的,也是通过实例化 FairSync 或 NonfairSync 分别对应公平锁和非公平锁的实现。

Java 锁系列(二)——ReentrantLock 和 ReadWriteLock基础运用

Lock 接口提供了与 synchronized 相似的功能,和 synchronized 不同的是,Lock 在使用的时候需要显示的获取和释放锁。虽然牺牲了隐式获取释放锁的便捷性,但是对于锁的操作具有更强的可操作性、可控制性以及提供可中断操作和超时获取锁等机制。本文将描述 ReentrantLock 和 ReadWriteLock 锁的基础使用。

RabbitMQ 镜像集群部署

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。本文主要讲解RabbitMQ安装,以及镜像集群的搭建。

Java 锁系列(一)——锁分类和基础概述

在多线程在获取资源的时候,锁用于保证资源获取的有序性和占用形,可以控制多个线程访问共享资源的顺序。Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对 java 主流的锁进行分类,梳理锁相关的基础知识。

领域驱动设计(DDD)知识点整理

Eric Evans的“Domain-Driven Design领域驱动设计”简称 DDD,DDD 是一套综合软件系统分析和设计的面向对象建模方法,相比于面向对象设计(OO),DDD 是一种更加注重业务边界的设计方法,OO 更加注重抽象,从差异中寻找共同点,然后进行抽象,这是两种不同的思维方式。可以简单的理解为 DDD 是一种业务+解耦的设计实现,DDD 的业务边界思维能够很好的支持微服务拆分,与近些年提出的微服务理论不谋而合 。本文将描述领域驱动设计(DDD)的基础知识,以及 DDD 项目的基础项目结构。

Spring Security系列(五)——Oauth2使用JWT生成Token无法指定授权范围的解决方法

写在前面Spring Oauth 提供了对 jwt 的支持,要实现 jwt 功能很简单,但是在指定授权范围时将会遇到无法指定授权范围的问题,本文主体描述的是如何解决这个问题。本文依赖环境:<!-- spring-security-oauth2 2.3.4.RELEASE --><d

Spring Security系列(四)——Spring Oauth2实现登录同时授权、自定义授权界面

本文环境: org.springframework.cloud:spring-cloud-starter-oauth2:2.2.4.RELEASE本文场景: 希望实现类似 QQ 的登陆并授权功能,但是将 /oauth/authorize 路径加入 permitAll 没有生效,加入 web.igno

hexo博客SEO进阶 - url设置和百度url提交、百度访问量统计

写在前面在前面的文章已经详细描述了怎么配置hexo、修改主题、发表文章等功能,本文主要描述一下hexo博客的有关链接提交和url的设置的内容,然后补充了个百度统计功能。随着我博客的使用可能会不断更新,文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用的东西win10电脑hexo 4.0.01

hexo-admin插件windows系统插入图片失败问题解决,hexo-admin汉化,以及插件的一点点优化

写在前面本人win10系统,在使用插件时插入图片遇到了图片插入裂图的问题,在网上找了一下教程都无法解决,只有说手动改路径,但是我觉得手动改太麻烦,于是开始翻源码,被我找到了问题所在,顺便根据个人喜好做了一点点修改。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。附带插件GitHub地址:hexo-

Git安装与配置

写在前面听说GitHub的Pages可以用来搭建个人博客,使用到了Git这个软件,所以我尝试了,写了一篇文章记录一下,以防以后忘记,也希望可以给有需要的朋友提供一点帮助。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用的东西win10系统的电脑Git 2.24.01.什么是Git?Git

Node.js安装和数据源的配置

写在前面本人并没有用到node.js进行什么开发,在使用GitHub+HEXO搭建个人博客时用到了这个东西,因为要设置国内镜像,所以记录一下,以防以后忘记了。 文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用的东西win10系统的电脑Node.js 12.13.11.下载与安装1.1下载N

Apache ignite笔记(二)——持久化

本文环境:Apache ignite 2.8.0jdk 1.8.0_241一、开启持久化java方式:// Ignite persistence configuration.DataStorageConfiguration storageCfg = new DataStorageConfigurat

JVM系列(一)——类加载器以及双亲委托机制

写在前面本文主要介绍了四种类加载器,以及算清委托机制。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西java1.类加载器1.1 类加载器作用:类加载器负责从文件或者网络中加载Class信息,加载的类信息存放于方法区的内存空间。1.2 启动类加载器(BootStrap ClassL

java取得对象占用的内存大小

Instrumentation类提供了编写Java编程语言代码所需的服务。 Instrumentation是将字节码添加到方法中,以收集工具使用的数据。由于这些更改纯粹是通过代理方式附加的,因此这些工具不会修改应用程序状态或行为。此类工具的示例包括监视代理、探查器、覆盖率分析器和事件记录器。

提交jar到Maven中央仓库

Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。 中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到。 我们可以将自己开源的工具包上传到Maven中央库上,供开发人员使用,本文将详细描述如何进行Jar上传等步骤。

 热烈欢迎各位大佬专家莅临玖涯博客指导检查!

 交换友链的朋友请前往友情链接

12 : 111
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×