首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java并发
订阅
枫月
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
面试官问:高并发下,你都怎么选择最优的线程数?
为了加快程序处理速度,我们会将问题分解成若干个并发执行的任务。并且创建线程池,将任务委派给线程池中的线程,以便使它们可以并发地执行。在高并发的情况下采用线程池,可以有效降低线程创建释放的时间花销及资源开销,如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及“过度…
【源码篇】深入Lock锁底层原理实现,手写一个Lock锁
lock是一个接口,而synchronized是在JVM层面实现的。synchronized释放锁有两种方式: 获取锁的线程执行完同步代码,释放锁 。 线程执行发生异常,jvm会让线程释放锁。 lock锁的释放,出现异常时必须在finally中释放锁,不然容易造成线程死锁。lo…
Java—线程池ThreadPoolExecutor详解
说明:使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解决资源不足的问题。如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗内存或者“过度切换”的问题。 线程池,顾名思义是一个放着线程的池子,这个池子的线程主要是用来执行任务的。当用户提交任务时,线…
2万字Java并发编程面试题合集(含答案,建议收藏)
15、什么是 FutureTask?使用 ExecutorService 启动任务。 java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。 任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把…
并发优化 - 降低锁颗粒
减少锁的持有时间。 例如对一个方法加锁不如对其中的同步代码行加锁。 读写锁。 可只对锁操作加锁,读不加锁。这样读、读之间不互斥, 读、写和写、读互斥,可使用J.U.C中的ReadWriteLock。 减少锁颗粒。 如ConcurrentHashMap中对segment加锁,而不…
面试必备:Java线程池解析
掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有关于线程池的问题。我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈谈我对线程池的理解。如果有哪里理解不正确,非常希望大家指出,接下来大家一起分析学习吧。 面试问题2:按线程池内部机制,当提交新任务…
分布式锁实现汇总
直接建一张表,里面记录锁定的方法名 时间 即可。 需要加锁时,就插入一条数据,释放锁时就删除数据。 操作成功的那个线程获得了该方法的锁,可以执行方法体内容。 这把锁强依赖数据库的可用性,数据库是一个单点,一旦数据库挂掉,会导致业务系统不可用。 这把锁没有失效时间,一旦解锁操作失…
你以为你真的了解final吗?
1. final的简介 final可以修饰变量,方法和类,用于表示所修饰的内容一旦赋值之后就不会再被改变,比如String类就是一个final类型的类。即使能够知道final具体的使用方法,我想对final在多线程中存在的重排序问题也很容易忽略,希望能够一起做下探讨。 2. f…
死磕synchronized底层实现
Mark Word(标记字段):默认存储对象的HashCode,分代年龄和锁标志位信息。它会根据对象的状态复用自己的存储空间,也就是说在运行期间Mark Word里存储的数据会随着锁标志位的变化而变化。 Klass Point(类型指针):对象指向它的类元数据的指针,虚拟机通过…
聊聊线程池原理,这一顿操作说懵阿里面试官...
想要进阶自己的开发水平,JDK源码中一些优秀的设计必须要经常学习,哪怕不学习,应对面试的时候,还是要能够应对几招,代表自己对这些东西还是有所了解。 对上面问题都已经了如指掌的大佬,联系我,让我表达对你的膜拜... 以上问题相对来说并不是很难,只要有认真看线程池源码,都可以找到答…