0

ForkJoinPool 是ExecutorService 接口的实现,它专为可以递归分解成小块的工作而设计。Java 7开始引入了一种新的Fork/Join线程池,它可以执行一种特殊的任务(Runnable):把一个大任务拆成多个小任务并行处理,最后将子任务结果合并成最后的计算结果。充分利用多线程处理器的优势,提高程序性能。

CAS全称Compare and swap(比较并替换),CAS虽然能很高效的解决原子操作,但CAS存在三大弊端:ABA问题、自旋时间长时浪费CPU、只能保证一个共享变量的原子操作。

其实在学Spring5源码的时候,就已经罗列了各种单例模式。在此,学习过 java.util.concurrent 包后,站在多线程的角度上分析比较经典的懒汉模式的双重锁校验(又称为DCL懒汉式(Double Check Lock))。

Semaphore应用场景有多个共享资源互斥、并发限流(如Hystrix)等,核心接口是AQS,信号量是操作系统中,实现进程间资源的互斥与同步。

惰性队列会尽可能的将任何消息存入磁盘,这样可以减少了内存的消耗,当消费者消费到相应的消息时才会被加载到内存,会增加I/O的使用。

在优先级队列中,针对生产者给消息设置的优先级进行排序,优先级越大的越先被消费者消费。