concurrent
shuizhaosi888
这个作者很懒,什么都没留下…
展开
-
timertask
java.util.Timer timer = new java.util.Timer(true); // true 说明这个timer以daemon方式运行(优先级低, // 程序结束timer也自动结束),注意,javax.swing // 包中也有一个Timer类,如果import中用到swing包, // 要注意名字的冲突。 TimerTask task = n...原创 2015-04-07 23:06:25 · 78 阅读 · 0 评论 -
并发容器
通过并发容器来改善同步容器的性能,同步容器将所有对容器状态的访问都串行化,来实现线程安全,这种方式严重降低并发性,当多个线程访问时,吞吐量严重降低。 并发容器ConcurrentHashMap 替代同步基于散列的Map,通过Lock控制。 原理锁分段,用new object[16]中每个元素作为一个锁,然后用synchronized(object[h...原创 2015-04-28 21:13:00 · 106 阅读 · 0 评论 -
线程同步工具类
同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch) 闭锁(CountDownLatch) public class RunMain { public long timeTasks(int nThreads, final Runnable task) throws InterruptedException { final ...原创 2015-04-28 22:34:08 · 98 阅读 · 0 评论 -
高效可伸缩的结果缓存
/** * 要执行的算法,返回结果v */ public interface Computable<A, V> { public V comput(final A arg); } /** * 用于缓存数据 */ public class Memoizer<A, V> implements Computable<A, V&g...2015-04-28 23:26:30 · 91 阅读 · 0 评论 -
线程池(Executors)
在java类库中,任务执行的主要抽象不是Thread,而是Executor,将任务的提交过程和执行过程解耦 public interface Executor { void execute(Runnable command); } public class RunMain implements Executor{ @Override public...原创 2015-04-29 20:44:02 · 119 阅读 · 0 评论 -
java 并发
能够写出高伸缩性的并发是一门艺术 在JAVA SE5中新增了3个包 java.util.concurrent java.util.concurrent.atomic java.util.concurrent.locks 在java的内存模型中,类的实例字段、静态字段和构成数组的对象元素都会被多个线程所共享,局部变量与方法参数都是线程私有的,不会被共享。 每个...原创 2015-04-29 20:48:09 · 85 阅读 · 0 评论