java多线程
想要追着光
黑夜无论怎样悠长,白昼总会到来,愿我们都能追寻到自己心中的光呀。
GitHub链接: https://github.com/wantLight
展开
-
美团-从ReentrantLock的实现看AQS的原理及应用
文章目录前言1 ReentrantLock1.1 ReentrantLock特性概览1.2 ReentrantLock与AQS的关联2 AQS2.1 原理概览2.1.1 AQS数据结构2.1.2 同步状态State2.2 AQS重要方法与ReentrantLock的关联加锁解锁2.3 通过ReentrantLock理解AQS2.3.1 线程加入等待队列2.3.1.1 加入队列的时机2.3.1.2 如何加入队列2.3.1.3 等待队列中线程出队列时机2.3.2 CANCELLED状态节点生成2.3.3 如何解转载 2020-08-31 14:34:38 · 714 阅读 · 0 评论 -
美团Java线程池实现原理与常见问题
随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。提示:本文开篇简述线程池概念和用途,接着结合线程池的源码,帮助读者领略线程池的设计思路,最后回归实践,通过案例讲述使用线程池遇到的问题,并给出了一种动态化线程池解决方案。转载 2020-08-14 11:46:35 · 349 阅读 · 0 评论 -
敖丙思维导图-多线程之synchronized\ThreadLocal\Lock\Volatitle\线程池
Synchronized底层实现有序性 (as-if-serial 单线程情况下程序的结果是正确)可见性 (JMM)原子性 (同一时间只有一个线程能拿到锁)可重入性 (锁对象的时候有个计数器,清0释放锁)不可中断性 (一个线程获取锁之后,另外一个线程处于阻塞或者等待不会被中断)同步代码JVM 中,对象在内存中分为三块区域对象头:Mark Word(标记字段):默认存储对象的HashCode,分代年龄和锁标志位信息Klass Point(类型指针)虚拟机通过这个指针来确定这个对象是哪个.原创 2020-06-09 16:14:18 · 1244 阅读 · 0 评论 -
Java多线程API调用并接受处理结果
最近一直学习多线程知识苦于没有机会运用到实际项目中,不过今天接到一个需求:请求发送多个第三方api请求,组合这些请求的返回结果返回给前端调用。如果说写for循环,单个请求结束后再继续调用下一个请求(自己想一想都蠢)。实在是体验效果不佳,需要优化api请求查询时间。这里就能采用多线程异步请求多个Api,拿到所有结果后组合返回即可。话不多说,show code! @Test publ...原创 2020-04-10 11:08:39 · 2162 阅读 · 0 评论