摘要:
核心线程: 默认永不销毁:此类线程处理完任务后,会调用任务队列的take方法,此方法是阻塞的,假如队列为空了,该线程就会被阻塞住,线程就能一直存活着了。 非核心线程: 空闲指定时间后,会被销毁:此类线程处理完任务后,会通过调用任务队列的pop方法,此方法接收一个时间参数且是限时阻塞的,假如队列为空, 阅读全文
摘要:
一、背景: 线程池中有任务正在执行,此时需要关闭或重启应用,池中的任务如何处理,需要考虑任务的损失、关闭速度两个方面考虑。 推荐使用Spring提供的线程池:ThreadPoolTaskExecutor,让Spring帮我们管理线程池的生命周期,初始化、监控、扩展、关闭。 特别在应用关闭、重启时能实 阅读全文
摘要:
1.项目pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 阅读全文
摘要:
分级:方法 > 服务 > 全局。 总原则:具体优先于概括,同级别下,消费者优先于生产者。 阅读全文
摘要:
由于机房没做时间同步服务器,就只能依赖机器的时钟固件了。服务器断电后,服器内置的BIOS芯片的小电池也会继续供电,在硬件时钟层面持续记录时间(需要电池有电)。 假如硬件时间与实际时间不一致,硬件时间存储的CST时间(应该存储UTC),断电重启后系统会读取硬件时间作为系统时间,导致系统时间快了8小时。 阅读全文
摘要:
当我们谈论数据库优化时,经常会遇到各种技术和策略。其中,MySQL的虚拟列(也被称为生成列或存储列)是一个引人注目的特性。它不仅可以帮助开发者提高查询效率,还能为数据表提供额外的计算功能,而无需真正改变表的结构。在这篇文章中,我们将深入探讨MySQL虚拟列的发展、原理以及应用。 一、虚拟列的发展 在 阅读全文
摘要:
在使用MySQL进行查询时,我们经常会遇到SQL执行没有按照我们预想的那样去使用某个索引优化查询,那怎么解决这个问题呢? 对于这个问题,MySQL给我们准备了三个方法,这三个方法可以帮助我们让SQL执行按照我们预想的那样去选择索引。今天我们就针对这三个方法分别来说说吧! use index:在你查询 阅读全文
摘要:
1 堆与栈 1.使用内存时,需要考虑分配、回收2个问题。 2.堆和栈是使用内存的2种方式。 3.堆通用性好,但需要复杂的内存管理算法配合使用;栈针对函数做了优化,性能很好,但通用性差。 堆 堆的设计思路是:关注点分离 把内存的【分配、回收】和应用程序实际内存读写分开 【内存管理模块】负责内存的【分配 阅读全文
摘要:
create or replace view v_user_info as select 'SCYB' as `医保注册编码`, t.hilist_code as `医保编码`, t.hilist_name as `医保名称`, t.pinyin as `拼音码`, t.chrgitm_lv as 阅读全文
摘要:
package com.service.impl; import lombok.AllArgsConstructor; import lombok.Getter; import java.time.LocalDate; import java.time.LocalDateTime; import j 阅读全文