自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 深入理解ThreadLocal

刚吃完皮皮虾,擦擦手继续写博客_____ThreadLocal一、先来举个栗子直观的感受下这个JAVA面试的常客运行结果:1、在上述示例中第一次get()取出的值为初始化的“皮皮虾”,再第二次set后,获取到的值为“皮皮虾,我们走”,说明set方法会覆盖原先的值。2、initialValue方法:返回线程本地变量的当前线程的初始值。可以避免在没有set之后的第一次调用get方法出现null的情况。...

2018-05-29 16:40:48 309

原创 关于volatile的那些事

一:写在前面的话:本篇文章大的方面来说会有两个:基础知识铺垫以及重点着墨点。闲言碎语就到这里了,下面进入正题。在进入本片文章的重点volatile之前先让我们来了解Java内存模型。二:Java内存模型1、java内存模型说明了某个线程的内存操作在哪些情况下对其他线程是可见的,从抽象的角度看,JMM定义了线程和主内存之间的抽象关系,线程之间的共享变量存储在主内存中,每个线程都有一个私有的本地内存,...

2018-05-29 16:39:24 360

原创 浅谈UML用例图

近期在项目的需求分析阶段用了用例图,之前工作中没有画过用例图(是一次都没有),依稀记得还是上大学时候接触过吧,觉得还是挺重要的,因此想对这块的知识点总结下。1、UML模型简介UML,是一种通用的可视化建模语言,是最广泛使用的面向对象系统的建模方法,用于对软件进行描述、可视化处理、构造和建立软件系统工作的文档。2、UML视图分类注:该图用的是Xmind画的UML视图大致包括上图所展示的几种,开发人员...

2018-05-29 16:31:07 2217

原创 RabbitMq安装

系统环境安装二郎神因为RabbitMq是Erlang语言写的,因为需要先安装二郎[root@localhost mq]# wget http://erlang.org/download/otp_src_19.3.tar.gz[root@localhost mq]# tar -zxvf otp_src_19.3.tar.gz[root@localhost otp_src_19.3]# ./confi...

2018-05-29 16:28:52 252

原创 Redis三主三从集群搭建

一、Redis简介官网给的定义大概意思是:Redis是一个开源,内存数据结构存储,用作数据库,缓存和消息代理。它支持的数据结构有:字符串,哈希,列表,集合,有序集合,位图,超级日志和具有半径查询的地理空间索引。Redis是一个高性能的支持主从同步的key-value数据库。二、集群搭建1>系统环境 本地用VirtualBox安装三台配置一样的Centos虚拟机查看版本:2>三主三从架构...

2018-05-29 16:25:34 12579 7

原创 JDK7源码分析ConcurrentHashMap

一、ConcurrentHashMap的由来原因可以总结成以下两点:1、HashMap是非线程安全的,在并发的场景中可能导致死循环2、hasetable虽然线程安全但效率却很低下1>线程不安全的HashMap下面代码取自并发编程艺术一书中,执行该代码会引起死循环public class HashMapTest {    public static void main(String[] arg...

2018-05-29 16:22:58 540

原创 如何理解Condition

在jdk1.5以后并发包中提供了Lock接口,Condition接口与Lock配合使用可以实现等待/通知模式,在此之前是使用定义在Object对象上的一组监视器方法,主要包括:wait()、wait(long timeout)、notify()以及notifyAll()方法,这些方法synchronized结合使用,也可以实现等待/通知。Object的监视器方法与Condition接口的对比如下(...

2018-05-29 16:20:13 711

原创 ReentrantLock——重入锁

ReentrantLock在AQS简介与源码分析中有所提及,本篇将用JDK1.8深入探索它内在的含义以及公平锁和非公平锁的性能测试比较。ReentrantLock实现了Lock接口,Lock接口提供比使用synchronized方法和语句有着更灵活的结构化,此外它还提供了其他功能,包括定时的锁等待、可中断的锁等待并且可以支持多个关联 Condition对象(关于Condition后续博文会单独解释...

2018-05-29 16:11:35 287

原创 AQS简介与源码剖析

AbstractQueuedSynchronizer,简称AQS,是Doug Lea大师创作的用来构建锁或者其他同步组件(信号量、事件等)的基础框架类。java.util.concurrent并发包中的工具类的内部实现都依赖于AQS,如常用的ReentrantLock, ReentrantWriteLock, CountDownLatch等的核心都是AQS,虽然它们都依赖AQS,但是通过AQS实现...

2018-05-29 16:05:34 467

原创 分布式锁基于Redis和Zookeeper的实现方案

一、为什么要用分布式锁?如果不同的系统之间共享了一组资源,那么访问这组资源的时候,往往就需要通过一些互斥的手段来防止彼此间的干扰,以保证数据的一致性。1、在单机部署的系统中,使用线程锁来解决高并发的问题,多线程访问共享变量的问题达到数据一致性,例如使用synchornized、ReentrantLock等。2、在多机部署的系统中,是在不同的JVM虚拟机中运行的,就无法使用JDK提供的Api来解决并...

2018-05-29 15:42:28 1448

空空如也

空空如也

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

TA关注的人

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