2015年11月3日

java.util.ServiceLoader的用法

摘要: 在很多开源组件里经常会看到java.util.ServiceLoader的使用,这里给大家介绍下怎么通过ServiceLoader找到一个接口的所有实现类。我们新建一个接口Hellopublic interface Hello {String say();}然后创建一个实现类DefaultHello... 阅读全文

posted @ 2015-11-03 09:49 Leo-Yang 阅读(2231) 评论(0) 推荐(0) 编辑

非阻塞算法-栈

摘要: 上一节我们以计数器作为例子描述了非阻塞算法,这一节我们拿一个稍微复杂一点的数据结构栈来讲述非阻塞算法的实践应用。1.单线程栈public class SingleThreadStack implements Stack{ private Node head; public Node p... 阅读全文

posted @ 2015-11-03 09:48 Leo-Yang 阅读(635) 评论(0) 推荐(1) 编辑

非阻塞算法-简单的计数器

摘要: 1.为什么要用非阻塞算法?我们知道为了避免并发环境下操作共享变量的问题,可以采用同步(synchronize)和锁(Lock)的方式做到线程安全,但是JVM处理锁竞争时对于竞争失败的线程采用的是挂起稍后调度的策略,这样会带来额外的线程上下文切换成本。同时和CAS(Compare And Set)这种... 阅读全文

posted @ 2015-11-03 09:39 Leo-Yang 阅读(1170) 评论(0) 推荐(0) 编辑

导航

转载请注明出处