首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
ventres
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
重走JAVA之路(五):面试又被问线程池原理?教你如何反击
corePoolSize:核心线程的数量,默认不会被回收掉,但是如果设置了allowCoreTimeOut为true,那么当核心线程闲置时,也会被回收。 有的朋友可能还不是很清晰,举个例子,一个公司,核心线程就是代表公司的内部核心员工,最大线程数量就是员工的最大数量,可能包含非…
[肥朝]从线程池理论聊聊为什么要看源码
很多时候,我都想向大家传输一个思想,那就是只有懂了原理,才能随心随心所欲写代码.而看源码,又是了解原理的一个非常重要的途径. 第三点,我认为尤其重要.我们看源码的目的是为了解决问题,我觉得只谈付出,不谈回报都是耍流氓.如果只告诉大家要懂原理,看源码,接着贴几大段源码,然后给大片…
搞懂Java线程池
身为程序员我们对线程是再熟悉不过了,多线程并发算是Java进阶的知识,用好多线程不容易有太多的坑。创建线程也算是一个"重"操作。创建线程的语句是new Thread()咋一看好像就是new了一个对象。 没错是new了个对象,但是不仅仅是普通对象那样在堆中分配了一块内存,它还需要…
Java并发 之 线程池系列 (2) 使用ThreadPoolExecutor构造线程池
诚然,这种创建线程池的方法非常简单和方便。但仔细阅读源码,却把我吓了一条: 这是要老子的命啊! 那这些连排队的资格都没有的Tasks怎么处理呢?不要急,后面在介绍ThreadPoolExecutor的拒绝处理策略(Handler Policies for Rejected Ta…
浅析 ReentrantLock
重入锁 ReentrantLock,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。代码示例如下: 线程的再次获取锁。锁需要去识别获取锁的线程是否为当前占据锁的线程,如果是,则再次成功获取 锁的最终释放。线程重复n次 获取了锁,随后在第 n 次释放该 …
从0到1玩转线程池
我们一般不会选择直接使用线程类Thread进行多线程编程,而是使用更方便的线程池来进行任务的调度和管理。线程池就像共享单车,我们只要在我们有需要的时候去获取就可以了。甚至可以说线程池更棒,我们只需要把任务提交给它,它就会在合适的时候运行了。但是如果直接使用Thread类,我们就…
并发环境下,先操作数据库还是先操作缓存?
在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。 假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库。,如下流程图所示: 这样看,没啥问题。我们再看第二个流程…
原创|灵魂拷问:Java对象的内存分配过程是如何保证线程安全的?
JVM内存结构,是很重要的知识,相信每一个静心准备过面试的程序员都可以清楚的把堆、栈、方法区等介绍的比较清楚。 上图,是一张在作者根据《Java虚拟机规范(Java SE 8)》中描述的JVM运行时内存区域结构画的。再强调一下,以上是JVM规范定义的逻辑分区,不同的虚拟机厂商,…
java并发编程系列:牛逼的AQS(上)
设计java的大叔们为了我们方便的自定义各种同步工具,为我们提供了大杀器AbstractQueuedSynchronizer类,这是一个抽象类,以下我们会简称AQS,翻译成中文就是抽象队列同步器。这家伙老有用了,封装了各种底层的同步细节,我们程序员想自定义自己的同步工具的时候,…
ThreadLocal和ThreadLocalMap源码分析
相信很多程序猿在平常实现功能的过程当中,都会遇到想要某些静态变量,不管是单线程亦或者是多线程在使用,都不会产生相互之间的影响,也就是这个静态变量在线程之间是读写隔离的。 有一个我们经常使用的工具类,它的并发问题就是用ThreadLocal来解决的,我相信大多数人都看过,…