首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java并发编程
订阅
jsv
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
【进阶之路】线程池拓展与CompletionService操作异步任务
ThreadPoolExecutor是可以扩展的,它内部提供了几个可以在子类中改写的方法(红框内)。JDK内的注解上说,这些方法可以用以添加日志,计时、监视或进行统计信息的收集。是不是感觉很熟悉?有没有一种spring aop中 @Around @Before @After三个…
这才是图文并茂:我写了1万多字,就是为了让你了解AQS是怎么运行的
如果你想深入研究Java并发的话,那么AQS一定是绕不开的一块知识点,Java并发包很多的同步工具类底层都是基于AQS来实现的,比如我们工作中经常用的Lock工具ReentrantLock、栅栏CountDownLatch、信号量Semaphore等,而且关于AQS的知识点也是…
ForkJoinPool与ThreadPoolExecutor的对比与选择
除了通用的ThreadPoolExecutor之外,Java还提供了一个有特殊用途的线程池,即ForkJoinPool。这个类跟ThreadPoolExecutor类大体相似,实现了Executor和
【JUC源码】线程池:创建线程池的参数设置思路&Excutors
大家对这几个参数应该都很熟悉了,虽然参数很少,但实际使用起来却有很多门道,大多数的问题主要集中在线程大小的设置,队列大小的设置两方面上,接下来我们一起看看工作中,如何初始化 ThreadPoolExecutor。 队列满时,此时因为 coreSize 和 maxSize 相等,…
异步化组件的场景选型及实现
在我们日常的开发过程中经常会碰到无血缘关系的流水账逻辑(数据补全, 通知逻辑等), 这个时候我们通常会采用异步化的方式去处理从而加快响应速度. 与此同时, 伴随着上下游依赖的服务变多, 对应的可能也会产生一系列的问题包括不限于问题难以排查, 性能难以保证等. 在闲鱼也不例外: …
parallelStream的坑,不踩不知道,一踩吓一跳
很多同学喜欢使用lambda表达式,它允许你定义短小精悍的函数,体现你高超的编码水平。当然,这个功能在某些以代码行数来衡量工作量的公司来说,就比较吃亏一些。 比如下面的代码片段,让人阅读的时候就像是读诗一样。但是一旦用不好,也是会要命的。 这段代码有一个关键的函数,那就是str…
2w字 + 40张图带你参透并发编程!
在计算机最早期的时候,没有操作系统,执行程序只需要一种方式,那就是从头到尾依次执行。任何资源都会为这个程序服务,在计算机使用某些资源时,其他资源就会空闲,就会存在 浪费资源 的情况。 操作系统的出现为我们的程序带来了 并发性,操作系统使我们的程序能够同时运行多个程序,一个程序就…
一网打尽 Java 并发模型
本篇文章我们来探讨一下并发设计模型。 可以使用不同的并发模型来实现并发系统,并发模型说的是系统中的线程如何协作完成并发任务。不同的并发模型以不同的方式拆分任务,线程可以以不同的方式进行通信和协作。 并发模型其实和分布式系统模型非常相似,在并发模型中是线程彼此进行通信,而在分布式…
ThreadLocal缺点及解决方案
在前面的一篇文章曾经介绍过ThreadLocal,大体知道了ThreadLocal的应用场景和实现原理。 简单的一句话总结是每个Thread上都有一个threadLocals属性,它是一个ThreadLocalMap,里面存放着一个Entry数组,key是ThreadLocal…
java 8 Stream流的基本使用、部分源码(学习笔记)
流是Java 8的新成员,允许以声明式来处理数据的集合(通过查询语句来表示,并不是像以前的一样写一个方法来处理),就现在来说,你可以把它们看成遍历数据集的高级迭代器。 虽然这个方式能够实现我们想要的东西,但是,我们使用了好几个变量,并且他们的作用只有一次,但是这个写感觉比较…