Java中的线程池

2019-06-20
阅读 9 分钟
1.7k
Java中的线程池运用场景非常广泛,几乎所有的一步或者并发执行程序都可以使用。那么线程池有什么好处呢,以及他的实现原理是怎么样的呢? 使用线程池的好处 在开发过程中,合理的使用线程池能够带来以下的一些优势,这些优势同时也是一些其他池化的优势,例如数据库连接池,http连接池等。 降低资源消耗,通过重复利用已...

ConcurrentHashMap探究

2019-06-17
阅读 3 分钟
1.8k
ConcurrentHashMap是线程安全,性能出色的Map的线程安全实现,相比较HashMap他是线程安全的,相比较HashTable他的性能优势非常明显。他的使用很简单,这里主要是想要探究一下ConcurrentHashMap的实现原理。在这里一共有 个问题需要搞明白。

浅谈双重检查锁定和延迟初始化

2019-06-12
阅读 2 分钟
1k
在Java多线程程序中,有时需要采用延迟初始化来降低初始化类和创建对象的开销,双重检查锁定是常见的延迟初始化技术,但它是一种错误的用法 双重检查锁的演进以及问题 使用syncronized实现 {代码...} 多线程情况下性能开销比较大。 非线程安全的双重检查锁 {代码...} 这里看起来很完美,但是是一个错误的优化,代码在读...

MyBatis的原理

2019-05-30
阅读 9 分钟
1.9k
每一个MyBatis应用都是以一个SqlSessionFactory的实例为核心构建的。SqlSessionFactory的核心作用是什么?

代理模式

2019-05-22
阅读 9 分钟
1.3k
代理简单介绍 生活中的代理处处可见:黄牛 【三个角色。我(真实对象)黄牛(代理对象)火车票(目的对象)】 代理模式出现的原因 生活中代理出现的原因其实也是代码中代理模式出现的原因,技术来源生活,? 真实对象无法直接访问目的对象 真实对象不想直接访问目的对象 真实对象访问目的对象存在困难 解决的问题是:在直...

Java中的锁

2019-05-21
阅读 4 分钟
1.2k
锁是用来控制多线程访问共享资源的方式,一个锁能够防止多个线程同事访问共享资源。在Lock接口出现之前,Java程序是通过synchronized来实现锁功能的,在JDK1.5之后,新增的Lock接口可以实现锁功能,他的功能与Synchronized类似,但是需要显式的获取和释放锁,他失去了隐式获取释放锁的便捷性,但是可操作性更强,同时具...

Java中的队列

2019-05-21
阅读 7 分钟
1.9k
最近在看数据结构的时候,看到了队列这里,在实际的开发中我们很少会手动的去实现一个队列,甚至很少直接用到队列,但是在Java的包中有一些具有特殊属性的队列应用的比较广泛,例如:阻塞队列&并发队列.

Java中的并发工具类

2018-12-25
阅读 8 分钟
2k
在JDK的并发包中提供了几个非常有用的并发工具类。CountDownLath,CyclicBarrier和Semaphre工具类提供了一种并发流程控制的手段,Exchanger工具类则提供了在线程间交换数据的一种手段。