这些年背过的面试题——个人项目篇
后来也是在官网上查询,了解到谷歌开源组件使用的队列服务底层是使用BigTable作为持久层,但是当BigTable分片过大时,会触发再分片的过程,再分片的过程中,是不会进行任务分发的,所以就会导致先前的问题。针对这个问题,谷歌官方的建议是提前配置队列的数量、负载策略和最大容量等信息,保证所有队列不同时触发再分片。进行两次...
解锁阿里巴巴面试, 线程安全专题解读
虽然ThreadLocal可以避免线程间数据共享的问题,但如果使用不当,也容易引发内存泄漏问题。常见的内存泄漏场景包括:线程池场景:在使用线程池时,如果没有手动调用ThreadLocal的remove方法清除线程本地变量,会导致线程池中的线程一直持有对应的ThreadLocal变量,而不会释放,从而造成内存泄漏。Web应用场景:在Web应用中,如果将...
Java面试题46-55
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。)sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前...
这些年背过的面试题——Netty篇
多路复用实现了一个线程处理多个I/O句柄的操作。多路指的是多个数据通道,复用指的是使用一个或多个固定线程来处理每一个Socket。select、poll、epoll都是I/O多路复用的具体实现,线程一次select调用可以获取内核态中多个数据通道的数据状态。其中,select只负责等,recvfrom只负责拷贝,阻塞IO中可以对多个文件...
这些年背过的面试题——SpringCloud篇
网关是所有请求的入口,路由的服务数量会很多,几十个到上百个都有可能,如果用线程池隔离,那么需要创建上百个独立的线程池,开销太大,用信号量隔离开销就小很多,还能起到限流的作用。[^常见问题]:Hystrix的超时时间要??于Ribbon的超时时间,因为Hystrix将请求包装了起来,特别需要注意的是,如果Ribbon开启了重试机制...
【073期】Spring Boot 项目 @Async 默认线程池导致 OOM 问题如何...
1.出问题的微服务是日志写库服务,对比日志,锁定在writeLog方法上,wirteLog方法使用spring-@Async注解,写库操作采用的是异步写入方式(www.e993.com)2024年11月11日。2.之前没有对@Async注解深入研究过,只是知道可以自定义内部线程池,经查看,日志写库服务并未自定义异步配置,使用的是spring-@Async默认异步配置3.首先简单百度了下,网上提到@Async...
面试官:如何评估一个线程池需要设置多少个线程
1.2向线程池提交任务时线程创建过程那当用户向线程池提交一个任务的时候,线程池会如何创建线程呢?首先线程池会判断当前已创建的线程是否小于corePoolSize(核心线程数),如果小于,则无论已创建的线程是否空闲,都会选择创建一个新的线程来执行该任务,直到已创建的线程等于核心线程数。
阿里巴巴Java程序员面经,这11个问题你会几个?
(1)并发包:理解ConcurrentHashMap原理,线程池,异步并发,锁。(2)集合类,线程类。(3)http请求。(4)json,xml读写。(5)常用api。(6)前端模块javascript、css,熟悉一个前端框架。(7)常用框架、常见的设计模式、面向对象。1、知其然知其所以然在java面试过程中,面试官一定会挑某个点深入考察。所以,如果...
2021年1月8号,提桶进阿里做开发,把我的面试经历都告诉你
④线程池参数设定,为什么这么设定,有什么作???7??参数⑤spring的循环依赖如何解决?为什么要三级缓存?⑥优先级队列的底层原理?⑦算法题:k路链表归并⑧算法题:数组最长子序列⑨ConcurrentHashMap的底层实现原理⑩你线上问题解决经验是什么?遇到了什么问题?应该怎么去解决?小结:一面主要是以基础为主,...
Java面试之线程池shutdown方法
首先,线程池执行线程时也是通过Thread对象的start()来启动线程,这种方式的线程本身就会占用一个虚拟机栈,而虚拟机栈在JVM中属于GCRoots。根据可达性分析算法,这个线程就不可能被回收。一直占用JVM的内存资源。这样就会造成一个问题,线程池如果没有执行shutdown或shutdownnow。