- 博客(7)
- 收藏
- 关注
原创 线程池参数如何理解?大白话餐厅举例!
当线程池中的线程数达到核心线程数时,新任务会被放入任务队列中。如果任务队列已满,且线程数未达到最大线程数,则会创建新的线程来执行任务。当任务队列满了且活动线程数达到核心线程数时,线程池会创建新的线程,直到达到最大线程数。只有在线程池的线程数超过核心线程数时,多出来的空闲线程才会根据这个参数来决定回收。当线程池中的线程数超过核心线程数,并且任务队列已满时,新任务会根据拒绝策略进行处理。如果任务队列已满,且线程数未达到最大线程数,则会创建新的线程来处理任务。只有在线程池的线程数超过核心线程数。
2023-11-16 21:40:20
78
1
原创 GC垃圾回收机制?大白话描述!
描述:根据可达标记存活对象,回收未标记对象。缺点:容易产生一些内存碎片,导致后续无法划出连续大内存空间。目标:主要是老年代描述:将内存分为两个区域,一半闲置,一半使用。当使用的快满时,标记可达存活对象移至闲置区,回收使用区域。目标:主要是年轻代缺点:我们可使用的内存只有一半,另一半闲置,所以会导致我们的内存闲置浪费,复制对象会增加处理时间。
2023-11-13 20:08:25
51
原创 Redis的穿透,击穿,雪崩的场景以及解决方案?大白话描述!
当同时有多个客户端去请求Redis中的数据时,第一个到达的客户端去获得该数据,这时发生击穿,没获取到。那就会去获取lock_key,如果不存在就将lock_key设置为自己的标识,例如client_A。给Redis里面设计的key-value加上过期时间,过期时间内加入Duration时间跨度对象,设置随机时间,随机时间自己看着来。字面意思永不过期,但是需要自己选择,一般是将你能预测的热点资源做永不过期,或者设置一个当访问量到达一定数量做永不过期。击穿:查询Redis没有,去查数据库,数据库有。
2023-11-12 11:55:37
98
2
原创 LinkedList和ArrayList的区别?大白话描述!
4.ArrayList每个元素存储使用下标和一个空间,占用空间小。LinkedList每个元素使用两个引用和一个空间,占用空间大。3.ArrayList增删元素除了尾部,其他地方需要数组推移,慢。LinkedList增删元素通过改变相邻头尾指针,快。2.ArrayList随机访问强,通过下标。LinkedList随机访问弱,需要指针遍历。1.ArrayList内部使用动态数组。LinkedList使用双向链表。
2023-11-12 10:57:30
63
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人