什么是虚拟线程?在Spring Boot中怎么用?
1.1 什么是虚拟线程 先来看一个例子。 var a = new AtomicInteger(0); // 创建一个固定200个线程的线程池 try (var vs = Executors.newFixedThreadPool(200)) { List<Future<Integer>> futures = new ArrayList<>(); var…
记录技术探索,分享实践心得。
共 1791 篇文章1.1 什么是虚拟线程 先来看一个例子。 var a = new AtomicInteger(0); // 创建一个固定200个线程的线程池 try (var vs = Executors.newFixedThreadPool(200)) { List<Future<Integer>> futures = new ArrayList<>(); var…
从Java8到Java18,Java已经经历了漫长的发展历程(Java20非长期维护版本)。同时也是从Java 8开始,Java生态系统发生了许多变化。其中最明显的变化是Java版本发布节奏的改变。Java 8于2014年发布,而Java 17则是在2021年发布的,这两个版本之间相差了7年的时间。然而,2017年9月,Java 平台的主架构师 Mark…
什么是Milvus? Milvus,一个开源的高性能向量数据库,它在各种应用场景中展现出强大的性能和灵活性。 在许多现代应用中,处理和分析大规模向量数据变得越来越重要。例如,在图像和视频搜索、推荐系统、自然语言处理和生物信息学等领域,向量数据被广泛应用。 项目背景…
场景 最近项目要求部署到其他公司的服务器上,但是又不想将源码泄露出去。要求对正式环境的启动包进行安全性处理,防止客户直接通过反编译工具将代码反编译出来。 方案 第一种方案使用代码混淆 采用proguard-maven-plugin插件…
随着外卖业务的快速发展,业务复杂度不断增加,线上系统环境有任何细小波动,对整个外卖业务都可能产生巨大的影响,甚至形成灾难性的雪崩效应,造成巨大的经济损失。每一次客诉、系统抖动等都是对技术人员的重大考验,我们必须立即响应,快速解决问题。…
自定义多数据源 SpringBoot利用自定义注解实现多数据源,前置知识:注解、Aop、SpringBoot整合Mybaits 1、搭建工程 创建一个SpringBoot工程,并引入依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId>…
在高并发系统中,保护系统的三种方式分别为:缓存,降级和限流。 限流的目的是通过对并发访问请求进行限速或者一个时间窗口内的的请求数量进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待 1、限流类型枚举类 /** * 限流类型 * @author ss_419 */ public enum LimitType { /** *…
进程与线程概念、区别、以及线程间的通信 概念 # 进程是对程序运行时的封装,是操作系统分配资源的基本单位,实现操作系统的并发。 线程是进程的子单位,是CPU调度和分派的基本单位,实现进程内部的并发。是OS识别的最小执行与调度单位,每个线程独占一个虚拟处理器,每个线程完成不同的任务,但共相一个地址空间。 区别 #…