摘要: 关于这四种锁的各自情况,网上有很多文章做了介绍,本不想单独开章节介绍,本章只介绍这四种锁的一些源码特点及注意事项。 demo 源码:https://github.com/mantuliu/javaAdvance 首先来看公平锁和非公平锁,我们默认使用的锁是非公平锁,只有当我们显示设置为公平锁的情况下 阅读全文
posted @ 2016-08-23 16:54 【刘光亮】 阅读(1950) 评论(0) 推荐(0) 编辑
摘要: AtomicInteger等对象出现的目的主要是为了解决在多线程环境下变量计数的问题,例如常用的i++,i--操作,它们不是线程安全的,AtomicInteger引入后,就不必在进行i++和i--操作时,进行加锁操作,在我们日常工作中,有很多业务场景需要在多线程环境下进行变量的计数:订单数统计、访问 阅读全文
posted @ 2016-08-23 00:02 【刘光亮】 阅读(1610) 评论(0) 推荐(0) 编辑
摘要: 在jdk1.5的版本中,java提供了语言级别的线程池,对于需要使用线程池的业务系统和中间件框架等提供了方便的选择。我认为线程池主要有两个方面的作用:第一就是防止因为外部条件的变化,造成线程数的瞬间飙升,从而影响了正常的业务使用;第二就是提高线程的利用率,从而在性能上带来好处,例如在NIO模型中,工 阅读全文
posted @ 2016-08-18 15:44 【刘光亮】 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 正常的情况下,业务系统都不会去中断它的线程,但是由于一些特殊情况的发生,线程已经不能正常结束了,并且此类线程已经影响到业务系统提供服务的能力,如果系统设计的健壮,便会通过监控线程去主动的中断此类线程。但是如果随意的去中断线程,又是非常危险的,因为线程内部会占用资源和改变变量的内容等,最好的办法是向线 阅读全文
posted @ 2016-08-17 20:04 【刘光亮】 阅读(249) 评论(0) 推荐(0) 编辑
摘要: Condition 将 Object 监视器方法(wait,notify,和notifyAll)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Conditio 阅读全文
posted @ 2016-08-16 18:57 【刘光亮】 阅读(1161) 评论(0) 推荐(0) 编辑
摘要: jdk1.5之前,我们对代码加锁(实际是对象加锁),都是采用Synchronized关键字来处理,jdk1.5及以后的版本中,并发编程大师Doug Lea在concurrrent包中提供了Lock机制。两种机制在性能上目前的jdk版本都差不多,Synchronized作为jvm的关键字,是在jvm层 阅读全文
posted @ 2016-08-15 14:51 【刘光亮】 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 本文向大家展示了java阻塞队列的使用场景、源码分析及特定场景下的使用方式。java的阻塞队列是jdk1.5之后在并发包中提供的一组队列,主要的使用场景是在需要使用生产者消费者模式时,用户不必再通过多线程自己实现,可以通过阻塞队列直接实现消息的分发和消费,方便简单,降低了开发难度,在本章的最后,我们 阅读全文
posted @ 2016-08-12 14:54 【刘光亮】 阅读(767) 评论(0) 推荐(0) 编辑
摘要: 本文中所使用的demo源码地址:https://github.com/mantuliu/javaAdvance 其中的类Lesson1ThreadLocal 本文为java晋级系列的第一讲,后续会陆续推出java相关的高级应用和分析。我个人一直都比较推崇threadlocal的设计原理和实现方式。以 阅读全文
posted @ 2016-08-11 11:39 【刘光亮】 阅读(1936) 评论(0) 推荐(0) 编辑
摘要: 由于jmeter不支持脚本的录制,只能手动设置,在某些集成型的压力测试时,使用不是很方便,这时可以和badboy一起配合使用,badboy支持网页操作的录制功能,并能把录制的操作导出为jmeter的脚本。本文的会在badboy中打开百度页面,并在页面中搜索【曼图 博客园】,最后再打开搜索的第一个页面 阅读全文
posted @ 2016-08-09 22:54 【刘光亮】 阅读(747) 评论(1) 推荐(0) 编辑
摘要: 本文讲述了利用jmeter来压测消息队列,其中消息队列采用apache的activemq,jmeter本身是支持符合jms标准消息队列的压测,由于jmeter的官方sampler配置比较复杂,本文直接使用sdk的方式来压测,与生产实际使用更加接近,各位如对官方的sampler感兴趣,可以自行去配置完 阅读全文
posted @ 2016-08-09 21:43 【刘光亮】 阅读(6324) 评论(1) 推荐(0) 编辑