自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

还是搬砖踏实

专注Java

  • 博客(20)
  • 资源 (8)
  • 收藏
  • 关注

原创 Apache Ranger 1.1.0源码导入IDEA并运行调试security-admin web模块

前言Apache Ranger是什么,它是一个为Hadoop平台提供了全面的数据安全访问控制及监控的集中式管理框架,Apache顶级项目。不废话了,其实本篇没那么高大上,就是一步步教你如何将Ranger源码导入到IDEA,并运行调试其web模块。导入源码第一步当然是下载源码,这里选用了最新版1.1.0git clone https://github.com/apache...

2018-08-06 20:32:22 1620 1

原创 【JDK源码分析】线程池ThreadPoolExecutor原理解析

前言一般情况下使用线程池都是通过Executors的工厂方法得到的,这些工厂方法又基本上是调用的ThreadPoolExecutor的构造器。也就是说常用到的线程池基本用到的是ThreadPoolExecutor。ThreadPoolExecutor的大概原理是先规定一个线程池的容量,然后给提交过来的任务创建执行线程,任务执行完毕后放在池子中等待新的任务提交过来,当然ThreadPoolExe...

2018-08-04 22:12:22 246

原创 【JDK源码分析】同步工具Exchanger,它的内部实现原理你看懂了吗?

前言Exchanger应该算并发包中工具使用相对少的,因为它主要用于线程之间交换数据,它的用法比较简单在不同线程之间使用exchange方法交换数据,但是内部实现比较巧妙,使用了unsafe的CAS原子操作、自旋来解决冲突问题,下面我们通过源码一探究竟。源码先看看源码注释中关于核心算法的介绍 for (;;) { if (slot is...

2018-07-29 21:53:36 316

原创 【JDK源码分析】并发包同步工具Semaphore

前言这次分析信号量Semaphore,为什么称之为信号量呢?是因为它可以控制同时访问某个资源的操作数量或是同时执行某个指定操作的数量。就好比它像一个租赁汽车的公司,租赁公司的汽车的数量是固定的,用完需要归还,用之前需要去租借(acquire 前提是还有可用的汽车),如果汽车都被租出去了,那只能等到别人归还了才能租到。它是基于AQS的共享锁来实现的,其中使用了较多的AQS的方法,所以在这之前最好...

2018-07-27 02:07:11 271

原创 【JDK源码分析】并发包同步工具CountDownLatch

前言CountDownLatch是一个闭锁实现,它可以使一个或者多个线程等待一组事件发生。它包含一个计算器,用来表示

2018-07-26 23:15:48 202

原创 【JDK源码分析】并发包同步工具CyclicBarrier

前言CyclicBarrier它是什么?一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点。类似于朋友之间联系要在中午聚个会,几个朋友全部到齐后才开始喝酒吃菜。源码CyclicBarrier属性和构造器public class CyclicBarrier { // 互斥锁 private final ReentrantLock lock = ne...

2018-07-24 23:52:31 144

原创 【JDK源码分析】通过源码彻底理解ReentrantLock显示锁

前言ReentrantLock和synchronized一样是一个可重入的互斥锁,但ReentrantLock功能更强大,它提供了非公平和公平两种锁争用策略供使用者选择,而synchronized只有非公平一种。ReentrantLock提供了可中断的锁等待机制以及可用于多组线程需要分组唤醒的条件。类图下面是ReentrantLock的类图,内部抽象类Sync继承了Abstract...

2018-07-24 16:48:03 208

原创 【JDK源码分析】通过源码深入分析AbstractQueuedSynchronizer

前言AbstractQueuedSynchronizer是并发包的核心基础类,它是构建阻塞锁和相关同步器(信号量、事件,等等)的框架,内部为FIFO队列,采用的是一种基于CLH锁队列修改的同步队列。引用他人对CLH的解释,CLH锁也是一种基于链表的可扩展、高性能、公平的自旋锁,申请线程仅仅在本地变量上自旋,它不断轮询前驱的状态,假设发现前驱释放了锁就结束自旋。源码1. 父类Abstra...

2018-07-22 22:31:57 185

原创 【JDK源码分析】深入理解ThreadLocal以及破坏它的线程隔离机制

前言众所周知ThreadLocal提供了线程局部变量,独立于变量的初始化副本。也就是ThreadLocal通过get或者set方法都是与当前线程相关联。深入源码set方法 public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = ge...

2018-07-20 02:09:33 200

原创 【JDK源码分析】StringBuilder、StringBuilder、String、AbstractStringBuilder源码解析

前言JDK 8 String为不可变,StringBuilder、StringBuffer都为可变。 为什么String是不可变的?// final修饰,禁止继承Stringpublic final class String implements java.io.Serializable, Comparable<String>, CharSequence ...

2018-07-19 00:21:29 293

原创 【JDK源码分析】 String.join()方法解析

前言最近出于习惯问题,顺手点开了String的源码,意外发现String在JDK 8中新增了join方法。(实在惭愧,JDK 8都发布多久了。。。)源码String重载了join方法,两个方法的异同点在于,第一个方法使用的可变参数,第二个方法使用的可迭代参数,这样设计主要是为了方法适用性更广。比如参数可以传一个数组、集合等等。下面就拿一个方法的源码来解析 String 类 ...

2018-07-18 22:38:24 2241

原创 Nginx 配置https强制跳转

Nginx http非默认端口强制跳转https配置以及默认端口Nginx http非默认端口强制跳转https配置以及默认端口http非默认端口强制跳转https配置http默认端口强制跳转https配置http非默认端口强制跳转https配置当需要使用非默认端口时,按如下配置即可,示例中端口号为8000server { listen ...

2018-04-26 15:09:26 3427

原创 PostgreSQL命令行常用命令psql

PostgreSQL命令行常用命令(psql)一般我们使用 psql来和数据库交互,方括号中为可选项参数,不带任何参数表示连接本机 psql [option…] [dbname [username]]PostgreSQL命令行常用命令(psql)登录数据库导入SQL脚本常用命令展示数据库切换数据库(创建新的数据库连接)展示当前数据库下所有关系(table、view...

2018-04-19 17:02:30 43575 1

原创 Linux下源码编译安装Redis及如何后台启动Redis

操作系统:Centos下载源码包http://download.redis.io/releases/redis-4.0.9.tar.gz解压# tar -zxvf redis-4.0.9.tar.gz编译安装# cd redis-4.0.9指定安装路径编译安装# make PREFIX=/usr/local/redis install更改配置使其后台启动...

2018-04-18 17:57:28 944

原创 Linux下源码编译安装PostgreSQL

操作系统:Centos下载源码包https://www.postgresql.org/ftp/source/v10.3/解压# tar -zxvf postgresql-10.3.tar.gz编译安装# cd postgresql-10.3指定安装路径# ./configure --prefix=/usr/local/postgresql 可能出现错误co...

2018-04-17 17:59:47 983

原创 Linux下源码编译安装Nginx

操作系统:Centos下载源码包http://nginx.org/en/download.html解压# tar -zxvf nginx-1.12.2.tar.gz 编译安装# cd nginx-1.12.2指定安装路径及添加SSL模块功能# ./configure --prefix=/usr/local/nginx --with-http_ssl_modul...

2018-04-17 16:39:34 540 1

原创 Linux下源码编译安装Python3

操作系统:Centos下载源码包下载地址 https://www.python.org/downloads/release/python-365/解压# tar -zxvf Python-3.6.5.tgz安装需要的依赖# yum -y install tkinter tcl-devel tk-devel xz-devel gdbm-devel bzip2-devel ...

2018-04-17 15:54:43 448

原创 Docker 出错 docker: Error response from daemon: OCI runtime create failed: container_linux.go:348

容器来源于使用官方Dockerfile build的镜像 https://github.com/docker-library/postgres/tree/master/10环境:CentOS 7文件列表-rw-r--r--. 1 root root 3962 Apr 8 17:13 docker-entrypoint.sh-rw-r--r--. 1 root root 5649 ...

2018-04-11 17:30:43 82167 2

原创 Linux下PostgreSQL开机启动配置方法

操作系统:Centos目前官方文档提到有两种方式开启PostgreSQL开机启动方法方式一、使用源码提供的脚本1、Linux脚本路径为源码包解压后contrib/start-scripts/linux ;2、将linux文件复制到/etc/init.d或者/etc/rc.d$ cp contrib/start-scripts/linux /etc/init.d/pgsql...

2018-04-11 10:59:40 3897

原创 Maven跳过单元测试配置

介绍二种跳过单元测试的配置方式使用maven-surefire-plugin,修改pom文件<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2...

2017-02-27 09:03:42 1408

postgresql 10 high performance PDF、epub电子书和各章节中使用到的SQL语句文件

高性能PostgreSQL,值得一看,压缩包内容 1.文字版PDF; 2.epub格式电子书; 3.各章节用到的SQL语句文件。 点个关注吧。

2018-07-28

CleanWipe Symantec免密卸载工具

Symantec的一些软件很难卸载干净,异或是需要密码才能卸载的软件,都可以通过此工具将其卸载。

2017-12-01

zookeeper 3.4

zookeeper 大家都懂的,这里不在多收。此版本是本人用过比较好用的一个版本。

2017-12-01

git 客户端

官网的下载速度实在是慢或者直接打不开,版本是最新的。

2017-12-01

java 反编译gui最新版

相较于以前版本更好用,界面也稍微好点。速度也有提升。

2017-12-01

Redis win下64位

redis x64 windows下非常稳定的版本。非常好用的版本。

2017-12-01

idea java google代码样式配置文件

好不容易找到的google java code style idea配置文件。非常好用。

2017-12-01

LdapAdmin---LDAP工具

win下非常好用的LDAP查看工具,非常稳定。最新版,64位。

2017-12-01

空空如也

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

TA关注的人

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