首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
我是一颗菠菜呱呱
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
Java并发编程入门(十九)异步任务调度工具CompleteFeature
1. CompleteFeature简介 CompleteFeature是对Feature的增强,Feature只能处理简单的异步任务,而CompleteFeature可以将多个异步任务进行复杂的组合,支持串行执行,并行执行,And汇聚,Or汇聚,从而能对复杂的关联任务进行调度…
线程池是怎样工作的?
我们在工作中或多或少都使用过线程池,但是为什么要使用线程池呢?从他的名字中我们就应该知道,线程池使用了一种池化技术,和很多其他池化技术一样,都是为了更高效的利用资源,例如链接池,内存池等等。 数据库链接是一种很昂贵的资源,创建和销毁都需要付出高昂的代价,为了避免频繁的创建数据库…
OOM分析之问题定位(二)
上一篇OOM分析之问题定位(一)中讲到通过单例模式可以有效的减少内存使用。但是随着压测并发数的不断提高,QRCodeTask对象不断增加,内存占用相应也会一直增加。再加上QRCodeTask任务的业务功能是合成图片,属于CPU密集型任务。如果处理的QRCodeTask任务太多,…
一个线程罢工的诡异事件
事情(事故)是这样的,突然收到报警,线上某个应用里业务逻辑没有执行,导致的结果是数据库里的某些数据没有更新。 虽然是前人写的代码,但作为 Bug maker&killer 只能咬着牙上了。 有一个生产线程一直源源不断的往队列写数据。 消费线程也一直不停的取出数据后写入后续的业务…
Java并发篇—线程池入门扫盲指南
(3)判断线程池中的线程是否都处于工作状态,如果不是则新创建一个线程来执行任务,没有处于工作状态的线程被淘汰,否则按照饱和策略处理该任务。 4:四种不同的拒绝策略,通过rejectedExecution()方法执行。 1. corePoolSize(线程池基本大小) 每次提交任…
漫谈Java线程状态
Java语言定义了 6 种线程状态,在任意一个时间点中,一个线程只能只且只有其中的一种状态,并且可以通过特定的方法在不同状态之间进行转换。 今天,我们就详细聊聊这几种状态,以及在什么情况下会发生转换。 要想知道Java线程都有哪些状态,我们可以直接来看 Thread,它有一个枚…
ThreadLocal源码解析以及InheritableThreadLocal拓展
有人可能想到了定义一个公共的属性或者静态变量,但是这样会引发一个多线程共享变量线程不安全问题,所以必须对这个公共属性进行加锁控制。 一旦上锁,那效率可不是慢了一星半点,有没有更加高效的办法呢?这时候就要用到***ThreadLocal***了。 上面提到的同步变量,采取的是统一…
你会这道阿里多线程面试题吗?
在前几天,群里有个群友问了我一道面试阿里的时候遇到的多线程题目,这个题目比较有意思,在这里和大家分享一下。 这两个题目看起来相似,第二个题目稍微来说比较简单一点,大家可以先思考一下两个线程奇偶数如何打印。 有一些人这里可能会用讨巧的,用一个线程进行循环,在每次循环里面都会做是奇…
Java线程池从使用到阅读源码(3/10)
我们一般不会选择直接使用线程类Thread进行多线程编程,而是使用更方便的线程池来进行任务的调度和管理。线程池就像共享单车,我们只要在我们有需要的时候去获取就可以了。甚至可以说线程池更棒,我们只需要把任务提交给它,它就会在合适的时候运行了。但是如果直接使用Thread类,我们就…
java.util.concurrent 并发包使用指南
本文不会去解释关于 Java 并发的核心问题 - 其背后的原理,也就是说,如果你对那些东西感兴趣,请参考《Java 并发指南》。 当你发现一些被漏掉的类或接口时,请耐心等待。在作者空闲的时候会把它们加进来的。 java.util.concurrent 包里的 BlockingQ…