随笔分类 - 高并发与多线程
摘要:并发list性能对比 代码演示: package com.dwz.concurrent; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.H
阅读全文
摘要:ConcurrentSkipListMap 与 ConcurrentHashMap进行比较 package com.dwz.concurrent; import java.util.ArrayList; import java.util.HashMap; import java.util.List;
阅读全文
摘要:对比在ConcurrentLinkedQueue中查询队列中元素数量size()和isEmpty()的性能差距 package com.dwz.concurrent; import java.util.concurrent.ConcurrentLinkedQueue; /** * 并发集合 * 对比
阅读全文
摘要:ConcurrentHashMap是对HashMap的高并发实现 压力测试方法: /* * boolean retrieve : 是否获取,true获取和插入,false只插入 */ public static void pressureTest(final Map<String, Integer>
阅读全文
摘要:1.ArrayBlockingQueue 有边界2.PriorityBlockingQueue 无边界3.LinkedBlockingQueue 边界可有可无4.SynchronousQueue 新增一个元素,等待删除一个元素才会继续删除,容量大小为05.DelayQueue 延迟处理6.Linke
阅读全文
摘要:初识CompletableFuture package com.dwz.executors; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.CompletableFut
阅读全文
摘要:使用CompletionService解决耗时时间过长任务导致的阻塞问题 package com.dwz.executors; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callabl
阅读全文
摘要:定时任务的四种形式: 1.无返回值,入参Runnable private static void testScheduledFutureRunnable() { ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecuto
阅读全文
摘要:future的缺陷 package com.dwz.executors; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.Callable;
阅读全文
摘要:future.get()和Future.get(long timeout, TimeUnit unit) package com.dwz.executors; import java.util.concurrent.ExecutionException; import java.util.concu
阅读全文
摘要:ExecutorService的终止方法 package com.dwz.executors; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.c
阅读全文
摘要:定时任务 scheduler solution 1.Timer/TimerTask 2.SchedulerExecutorServic3.crontab 4.cron4j 5.quartz 6.Control-M(商业版的) Timer问题: 当TimerTask的执行时间超过Timer规定的任务间
阅读全文
摘要:创建ExecutorService的四种方式: 使用Executors.newCachedThreadPool()的方式来创建ExecutorService /* * 线程池的生命周期很短,60秒就结束了 * These pools will typically improve the perfor
阅读全文
摘要:类的结构: Executor-ExecutorService--AbstractExecutorService ThreadPoolExecutor ThreadPoolExecutor七大构造参数: package com.dwz.executors; import java.util.concu
阅读全文
摘要:Phaser没指定parties的时候需要先注册 package com.dwz.phaser; import java.util.Random; import java.util.concurrent.Phaser; import java.util.concurrent.TimeUnit; im
阅读全文
摘要:累加器--RecursiveTask有返回值 package com.dwz.forkjoin; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java
阅读全文
摘要:悲观读(写的机会很少) package com.dwz.stampedLock; import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.concurrent.Exe
阅读全文
摘要:condition与ReentrantLock模拟生产者消费者 package com.dwz.condition; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurren
阅读全文
摘要:使用ReentrantLock构建简单的读写锁 package com.dwz.locks; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; import java.ut
阅读全文
摘要:创建一个显示锁 package com.dwz.locks; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.ut
阅读全文