多线程
文章平均质量分 62
沐风Cc
一步一个脚印,加油 加油
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
记录一次由于OOM的unable to create new native thread异常引发的线上问题
早上刚到公司,产品就跑过来说:xxx看看这个工单数据是怎么回事?为什么和预期的不一致呢?顿时感觉头大。早饭也顾不上吃了,就拿到数据ID在Elk中搜索日志… 问题描述: 根据数据ID,在ELK海量日志中搜索,发现该请求竟然OOM了!!! what? 真是让我惊讶。 仔细查看下报错的原因竟是,JVM申请不到线程来处理本次请求,而导致的OOM。具体日志如下: 原因定位: nested exception is java.lang.OutOfMemoryError: unable to create n原创 2021-07-06 20:46:33 · 1587 阅读 · 1 评论 -
AQS同步器代码分析
AQS原理代码分析 特点:可重入锁,有公平锁、非公平锁区分,默认非公平锁。 大概逻辑: 修改成功并获得锁 加入到等待队列 Node1、Node2、Node3、… 让等待队列线程挂起 LockSuport.part(next); 阻塞挂起 响应 唤醒挂起的线程。LockSuport.unpart(next); Lock代码分析 //非公平锁 ReentrantLock rLock = new ReentantLock(); rLock.lock(); //方法 final原创 2021-06-08 20:53:19 · 230 阅读 · 0 评论 -
记录多线程使用引发的线程安全问题 -- Callable<T> 返回值场景
1.场景: 进行多线程处理时,需根据传递的参数,执行相应的方法,并返回结果 代码相关: package cn.sys.Test.thread.callable; import lombok.Getter; import lombok.Setter; import java.util.concurrent.*; class Task implements Callable<String> { private ThreadPoolExecutorTest test; pri原创 2021-03-11 17:01:27 · 505 阅读 · 3 评论 -
多线程之---CountDownLatch和CylicBarrier
随手记录一下,写的粗糙,没有涉及原理,方便自己。以后再深入研究 1.CountDownLatch CountDownLatch是一个计数器闭锁,通过它可以完成类似于阻塞当前线程的功能,即:一个线程或多个线程一直等待,直到其他线程执行的操作完成 2.CylicBarrier CyclicBarrier允许一组线程在到达某个栅栏点(common barrier point)互相等待,直到最后一个...原创 2020-05-03 17:46:03 · 472 阅读 · 0 评论 -
多线程之--- 信号量Semaphore
写这篇博客的目的是增加自己记忆,方便平常使用 1.信号量 Semaphore 是一种基于计数的信号量,它可以是一个阀值,基于此,多个线程竞争获取许可信号,超过阀值后,线程申请许可信号将会别阻塞 常用方法 方法 含义 acquire() 申请一个信号量获取可用的资源,如果可用, 信号量内部的资源个数减掉1,如果没有可用资源线程会阻塞在该方法中,不能结束该方法,不能返回,直到有可用...原创 2020-05-03 17:13:58 · 512 阅读 · 0 评论
分享