加载中
Java并发编程之ThreadLocal源码分析

ThreadLocal介绍 ThreadLocal是JDK1.2提供的,作用是给单个线程内的共享变量提供载具。每个线程之间的ThreadLocal里的数据是相互隔离的,并随着线程的消亡而消亡。 使用 ThreadLocal提供了g...

2019/01/23 16:54
775
Java内存溢出类型

1.堆空间溢出,比如读入大量的数据,报错 java.lang.OutOfMemoryError:heap space 2.永久代溢出,比如Spring框架加载了很多新生成类,报错 java.lang.OutOfMemoryError: PermGen space 3.JV...

2019/05/06 19:29
455
Java并发编程之CyclicBarrier源码分析

CyclicBarrier介绍 CyclicBarrier是JDK1.5提供允许一组线程等待彼此都达到一个共同的障碍点的同步的工具。CyclicBarrier适用于固定大小线程池,可以设置一个Runnable任务,当各线程达到共同的...

2019/01/14 10:58
58
Java并发编程之ReentrantLock源码分析

ReentrantLock介绍 从JDK1.5之前,我们都是使用synchronized关键字来对代码块加锁,在JDK1.5引入了ReentrantLock锁。在JDK1.6之前synchronized关键字性能比ReentrantLock锁要差,JDK1.6之后性...

2018/12/22 14:09
1.7K
Java并发编程之Semaphore源码分析

Semaphore介绍 Semaphore是JDK1.5提供允许一组拿到许可证的线程访问共享资源,并禁止其他拿不到许可证的线程访问共享资源工具。Semaphore一般用来做系统的限流。 特点 Semaphore和Reentrant...

2019/01/19 20:51
249
Java并发编程之Condition源码分析

Condition介绍 上篇文章讲了ReentrantLock的加锁和释放锁的使用,这篇文章是对ReentrantLock的补充。ReentrantLock#newCondition()可以创建Condition,在ReentrantLock加锁过程中可以利用Con...

2018/12/31 19:41
468
Java并发编程之CountDownLatch源码分析

CountDownLatch介绍 CountDownLatch是JDK1.5提供用来多线程并发同步的工具,可以让一个或多个线程等待另一个线程执行完再执行。 例子 private static CountDownLatch countDownLatch = new C...

2019/01/06 17:18
252
如何优化Java垃圾回收机制

我为GC优化归纳了两个目的: 一个是将转移到老年代的对象数量降到最少 另一个是减少Full GC的执行时间 将转移到老年代的对象数量降到最少 按代的GC机制由Oracle JVM提供,不包括可以在JDK7以...

2019/05/06 20:41
94
Spring源码分析之@EnableAspectJAutoProxy注解分析

纵观整个Spring的发展历史,注解的配置正逐步替代xml的配置,到SpringBoot时代,完全可以用注解的配置替换繁杂的xml配置,例如我们需要开启AOP功能只要在代码上配置上@EnableAspectJAutoPro...

2019/05/09 18:58
1.1K
Netty源码分析之开篇

Netty是什么 Netty是Java的一种能提供异步事件驱动网络编程框架,Netty提供了简洁强大的API,能极大提高开发稳定可靠网络服务器和客户端程序的效率。 如何使用 以创建一个服务端举例说明 pu...

2019/01/31 15:57
115
Netty源码分析之服务端启动流程

上节对Netty的做了简单介绍,这节分析下Netty启动流程,后面的源码分析都以Netty4.0.32版本为例,以下面启动代码为例子 public class TimeServer { public void bind(int port) throws Exce...

2019/02/16 13:47
1.7K
Netty源码分析之IO事件

IO事件概述 在上节我们知道Netty启动后会动起一个selector线程监听IO事件,IO事件包括以下几个: SelectionKey.OP_READ 读操作位触发读事件 SelectionKey.OP_WRITE 写操作位触发写事件 Sele...

2019/03/07 19:32
378
Netty源码分析之ChannelOutboundBuffer

ChannelOutboundBuffer介绍 ChannelOutboundBuffer是Netty发送缓存,当Netty调用write时数据不会真正的去发送而是写入到ChannelOutboundBuffer缓存队列,直到调用flush方法Netty才会从Chann...

2019/03/30 12:11
537
Spring源码分析之事务

前言 本篇以@EnableTransactionManagement注解的方式来讲解Spring事务的实现 @EnableTransactionManagement配置 proxyTargetClass配置 在Spring中其事务是利用动态代理实现,动态代理有2种实...

2019/06/10 14:13
74
Netty源码分析之Selector流程

在Netty启动后,Netty的线程池会起一个Selector线程处理IO事件和其他业务事件,下面来看下Selector流程 流程图 Selector线程是一个循环线程它一直处理IO事件和其他业务事件。这里需要说明Sel...

2019/02/24 21:33
625

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部