
Java并发学习
文章平均质量分 93
Lpepsi
做咩啊
展开
-
Java并发编程的基础
本文部分源自《Java并发编程的艺术》线程和线程状态Java中通过实现Runnable接口来实现线程,Java中Thread类也是如此public interface Runnable { public abstract void run();}-----class Thread implements Runnable { ..... }Java线程的生命周期有六种状态,分别是NEW(新建),RUNNABLE(运行中),BLOCKED(阻塞),WAITING(等待),TIME.原创 2021-06-05 14:53:37 · 240 阅读 · 1 评论 -
Java线程池以及线程池监控(II)
本文部分来源自Java线程池实现原理及其在美团业务中的实践上一篇说到了execute的执行过程,接下来讲一讲线程创建的过程,即addWorker(Runnable firstTask, boolean core) private boolean addWorker(Runnable firstTask, boolean core) { retry: for (;;) { int c = ctl.get(); int .原创 2021-05-30 14:53:29 · 372 阅读 · 2 评论 -
Java线程池以及线程池监控(I)
本文部分来源自Java线程池实现原理及其在美团业务中的实践线程池是什么线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。当然,使用线程池可以带来一系列好处:.原创 2021-05-29 00:32:54 · 1848 阅读 · 0 评论 -
Java并发-volatile和synchronized
Java并发-volatile和synchronized学习自Java并发编程的艺术和深入理解Java虚拟机volatile定义:volatile是轻量级的synchronized,被volatile修饰的变量被修改时能够被其他线程及时发现更新,确保所有线程看到这个变量是一致的。但是volatile只能确保可见性不能保证互斥性实现原理:有volatile修饰的变量在写操作的时候会多出一条Lock前缀的汇编代码,该代码有两个作用将当前处理器缓存行的数据写回到系统内存使其他CPU缓存原创 2021-05-09 18:54:07 · 271 阅读 · 3 评论 -
线程池的使用
线程池的创建(I)我们可以通过ThreadPoolExecutor创建一个线程池 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...原创 2020-01-12 16:36:06 · 226 阅读 · 0 评论 -
线程池的原理
为什么用线程池线程池顾名思义,就是一堆线程在一个池子里线程池是运用场景最多的并发框架,使用好线程池有如下几个好处降低资源的消耗: 我们都知道线程的创建是耗时和耗资源的,通过使用线程池来重复利用已经创建的线程来降低创建和销毁造成的消耗提高响应速度: 当任务到达时,任务可以不需要等到线程创建完就能直接执行便于管理: 使用线程池可以进行统一分配,调优和监控线程池的原理线程池的流程图...原创 2020-01-08 17:10:48 · 144 阅读 · 0 评论