wait 释放锁
notify 不释放锁,仅通知
wait和notify模拟Queue
ThreadLocal
concurrenthashmap 分成16个 段,每个段是一个hashmap 同步每一个小段,最多可并发执行16个线程,减小同步粒度
future模式 同步订阅-异步通知模式
master-work模式 任务拆分-异步工作汇总模式
java.util.concurrent
Executors
newFixedThreadPool()固定数量线程,暂缓队列
newSingleThreadExecutor()单个线程,等待
newCachedThreadPool()不限制最大数线程池
newScheduledThreadPool()指定数量最大线程池
ThreadPoolExecutor pool = new ThreadPoolExecutor(
1,//核心线程数
2,//最大线程数
60,//空闲时间
TimeUnit.SECONDS,//时间单位
new ArrayBlockingQueue<Runable>(3),//有界队列3 BlockingQueue 无界队列
//拒绝策略,没有则默认.自定义发送到另一台服务器处理
);
pool.execute(任务);
pool.shutdown();
kill 优雅关机