摘要:
创建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 阅读全文
摘要:
使用Semaphore构建一个显示锁 package com.dwz.utils; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; public class SemaphoreExample1 阅读全文
摘要:
使用Exchanger进行两个线程之间的数据交互案例: package com.dwz.utils; import java.util.concurrent.Exchanger; public class ExchangerExample1 { public static void main(Str 阅读全文