用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
Java面试之多线程&并发篇(8)
Java面试之多线程&并发篇(8)
梦见你的名字
论坛元老
|
2024-11-25 21:27:53
|
显示全部楼层
|
阅读模式
楼主
主题
1491
|
帖子
1491
|
积分
4473
前言
原来想着给本身放松一下,刷刷博客,突然被几道面试题难倒!引用范例有哪些?有什么区别?说说ThreadLocal原理?线程池原理知道吗?以及核心参数?线程池的拒绝策略有哪些?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘
*** 12万字的java面试题整理 ***
*** java核心面试知识整理 ***
*** Java高频面试解说视频(知识涵盖齐全) ***
引用范例有哪些?有什么区别?
引用范例主要分为强软弱虚四种:
强引用指的就是代码中广泛存在的赋值方式,好比A a = new A()这种。强引用关联的对象,永远不会被GC接纳。
软引用可以用SoftReference来描述,指的是那些有效但是不是必须要的对象。体系在发生内存溢出前会对这类引用的对象进行接纳。
弱引用可以用WeakReference来描述,他的强度比软引用更低一点,弱引用的对象下一次GC的时候一定会被接纳,而不管内存是否充足。
虚引用也被称作幻影引用,是最弱的引用关系,可以用PhantomReference来描述,他必须和ReferenceQueue一起使用,同样的当发生GC的时候,虚引用也会被接纳。可以用虚引用来管理堆外内存。
说说ThreadLocal原理?
threadLocal可以明白为线程本地变量,他会在每个线程都创建一个副本,那么在线程之间访问内部副本变量就行了,做到了线程之间互相隔离,相比于synchronized的做法是用空间来换时间。
ThreadLocal有一个静态内部类ThreadLocalMap,ThreadLocalMap又包罗了一个Entry数组,Entry本身是一个弱引用,他的key是指向ThreadLocal的弱引用,Entry具备了生存key value键值对的能力。
弱引用的目的是为了防止内存泄露,假如是强引用那么ThreadLocal对象除非线程结束否则始终无法被接纳,弱引用则会在下一次GC的时候被接纳。
但是如许还是会存在内存泄露的问题,假如key和ThreadLocal对象被接纳之后,entry中就存在key为null,但是value有值的entry对象,但是永远没办法被访问到,同样除非线程结束运行。
但是只要ThreadLocal使用适当,在使用完之后调用remove方法删除Entry对象,现实上是不会出现这个问题的。
线程池原理知道吗?以及核心参数
起首线程池有几个核心的参数概念:
最大线程数maximumPoolSize
核心线程数corePoolSize
生动时间keepAliveTime
壅闭队列workQueue
拒绝策略RejectedExecutionHandler
当提交一个新任务到线程池时,具体的执行流程如下:
当我们提交任务,线程池会根据corePoolSize大小创建若干任务数量线程执行任务
当任务的数量凌驾corePoolSize数量,后续的任务将会进入壅闭队列壅闭列队
当壅闭队列也满了之后,那么将会继续创建(maximumPoolSize-corePoolSize)个数量的线程来执行任务,假如任务处置惩罚完成,maximumPoolSize-corePoolSize额外创建的线程等候keepAliveTime之后被主动销毁
假如达到maximumPoolSize,壅闭队列还是满的状态,那么将根据差别的拒绝策略对应处置惩罚
线程池的拒绝策略有哪些?
主要有4种拒绝策略:
AbortPolicy:直接丢弃任务,抛出异常,这是默认策略
CallerRunsPolicy:只用调用者所在的线程来处置惩罚任务
DiscardOldestPolicy:丢弃等候队列中最旧的任务,并执行当前任务
DiscardPolicy:直接丢弃任务,也不抛出异常
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
梦见你的名字
论坛元老
这个人很懒什么都没写!
楼主热帖
【docker系列】四种基础网络模式及自定 ...
MySQL高可用架构搭建实战
小白怎么入门网络安全?看这篇就够啦! ...
'林子雨大数据' 实验3 HBase操 ...
kubernetes常用命令-1-命令补全 ...
1.1 大数据简介-hadoop-最全最完整的保 ...
这些行业注意了:“谨防互联网门户钓鱼 ...
北京智游科技(爱加密)-渗透测试实习 ...
Cilium系列-9-主机路由切换为基于 BPF ...
Xcode Run Script 脚本
标签云
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表