HashMap是我们平时开发中用的比较多的集合容器,但是它不是线程安全的。当需要在多线程时保证安全我们会选择使用ConcurrentHashMap。下面对这两个集合介绍(基于Java8的源码,同时会与Java7的简单对比)。
分布式锁介绍及其实现方式
Posted on
|
In
分布式
提到锁,我们最先想到的是Java的synchronized关键字和JUC包中的ReentrantLock,这两个锁可以满足我们在多线程中对共享资源的安全访问,但是随着分布式的发展,本地锁已经没办法满足我们的需求了。为了在分布式环境也能对一个共享资源进行安全访问,我们需要引入分布式锁。
一文详解Redis
Posted on
|
In
middleware
Redis是一个开源的,基于内存的,也可进行持久化的,基于C语言编写的存储数据库。Redis能达到11w的QPS。Redis这么快的原因主要有以下几点:
完全基于内存,数据全部存储在内存中,读取时没有磁盘IO,所以速度非常快。
Redis采用单线程的模型,没有上下文切换的开销,也没有竞态条件,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。
Java NIO详解
Posted on
|
In
Java
springboot使用mybatis加载typealias的package问题
Posted on
|
In
web
springboot打成jar包后运行会造成mybatis设置的别名包找不到实体类的问题,这是由于mybatis默认使用DefaultVFS扫描包,在springboot中可以改成SpringBootVFS进行包扫描。具体见下面代码。