随笔分类 - 多线程与并发
摘要:一、背景 jdk8中加入了实现类CompletableFuture,用于异步编程。底层做任务使用的是ForkJoin, 顾名思义,是将任务的数据集分为多个子数据集,而每个子集,都可以由独立的子任务来处理,最后将每个子任务的结果汇集起来。它是ExecutorService接口的一个实现,它把子任务分配
阅读全文
摘要:一、背景介绍 经常定位应用容器问题,会遇到以下问题: 容器突然重启,为什么会重启? 容器的CPU为什么在不断的冲高? 为什么要给容器分配这么多内存,能不能降低一些? 怎么获取应用的内存、CPU等信息? 遇到以上的问题,对于纯业务开发人员,感觉两眼摸瞎,不知从和下手,一般就是请教前辈,获取应用的堆栈信
阅读全文
摘要:import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @
阅读全文
摘要:一、背景 有时需要测试一下某个功能的并发性能,又不要想借助于其他工具,因此需要自己在java中模拟并发请求,其原理在于多开几个线程,同时发起请求。但是,这种请求,一般会存在启动的先后顺序了,算不得真正的同时并发!怎么样才能做到真正的同时并发呢?是本文想说的点,java中提供了闭锁 CountDown
阅读全文
摘要:3 import java.util.concurrent.Callable; 4 import java.util.concurrent.Executors; 5 import java.util.concurrent.Future; 6 import java.util.concurrent.T
阅读全文
摘要:一、并发与异步 并发:对多任务的并行执行的支持机制。 多任务的消费机制。 多任务的处理机制; 异步:一种通信机制; 分流与合并机制。 异步与同步是一对概念,在方法调用的时候,如果我们等待方法调用的返回则是同步,不等待而继续执行程序流则是异步。从处理器的角度来看,有些操作消耗的时间,远远高于其运行指令
阅读全文