解锁阿里巴巴面试, 线程安全专题解读
线程池场景:在使用线程池时,如果没有手动调用ThreadLocal的remove方法清除线程本地变量,会导致线程池中的线程一直持有对应的ThreadLocal变量,而不会释放,从而造成内存泄漏。Web应用场景:在Web应用中,如果将ThreadLocal作为静态变量存储在某个类中,并且没有及时清理ThreadLocal中的值,可能会导致线程长时间持有对应的Thread...
面试官问:在实际应用中,本地缓存怎么选型?
Guavacache在读操作中可能会触发淘汰数据的清理操作,虽然自身也做了一些优化来减少读的时候的清理操作,但是一旦触发,就会降低查询效率,对缓存性能产生影响。而在Caffeine支持异步操作,采用异步处理的策略,查询请求在触发淘汰数据的清理操作后,会将清理数据的任务添加到独立的线程池中进行异步操作,不会阻塞查询请求,...
Java面试题46-55
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。)sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前...
面试官:如何评估一个线程池需要设置多少个线程
首先线程池会判断当前已创建的线程是否小于corePoolSize(核心线程数),如果小于,则无论已创建的线程是否空闲,都会选择创建一个新的线程来执行该任务,直到已创建的线程等于核心线程数。当线程池中已创建的线程数等于核心核心线程数时,用户继续向线程池提交任务时,此时会先判断任务队列是否已满:1)如果任务队列未满...
你还不了解线程池原理?赶紧来补一下
一、为什么要用线程池1.降低资源消耗。通过重复利用已创建的线程降低线程创建、销毁线程造成的消耗。2.提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。3.提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配、调...
打怪升级九九八十一难之Java阿里面试一面面试经历,删前速看!
这个策略和AbortPolicy的slient版本,如果线程池队列满了,会直接丢掉这个任务并且不会有任何异常DiscardOldestPolicy这个策略从字面上也很好理解,丢弃最老的(www.e993.com)2024年11月13日。也就是说如果队列满了,会将最早进入队列的任务删掉腾出空间,再尝试加入队列。CallerRunsPolicy使用此策略,如果添加到线程池失败,那么主线程会自己去执行该...
2021年1月8号,提桶进阿里做开发,把我的面试经历都告诉你
⑤springCloud里面的限流,限流是怎么内部实现的?怎么去挡住多余的请求,怎么实现限流的(线程池的工作原理)?⑥什么时候该用mongoDB,什么时候使用mysql?该如何选择?⑦你做过的项目数据量有多大呢?如果现在数据量特别大,或者一张表一种放不下了,应该怎么处理?分布分表应该怎么做?具体的某一张表怎么拆?(...
这些年背过的面试题——SpringCloud篇
用ThreadLocal配合线程池隔离模式需当心当我们用了线程池隔离模式的时候,被隔离的方法会包装成一个Command丢入到独立的线程池中进行执行,这个时候就是从A线程切换到了B线程,ThreadLocal的数据就会丢失。Gateway中多用信号量隔离网关是所有请求的入口,路由的服务数量会很多,几十个到上百个都有可能,如果...
腾讯、阿里、滴滴后台面试题汇总总结 — (含答案)
Q22.解释线程安全和可重入函数A:这个是关于多线程访问的吗?可重入函数这个名词听过,但是忘记干啥了,面试官说pass.(一个可重入函数被称为可重入的,表明该函数被重入之后,不会产生任何不良后果,一个函数被重入,表示这个函数没有执行完成,由于内部原因或外部原因调用,又一次进入该函数执行)...
四面阿里余额宝成功拿下offer,2020阿里面试真题
线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?https和http区别,有没有用过其他安全传输手段?项目用Spring比较多,有没有了解Spring的原理?AOP和IOC的原理代码编写:两个线程,一个线程打印奇数,一个打印偶数,控制交替打印奇偶数。(有多种...