- 博客(145)
- 资源 (1)
- 收藏
- 关注
原创 工作中几个问题的思考
(3)如果线程池里面存活的线程数已经等于核心线程数了,且阻塞队列已经满了,再会去判断当前线程数是否已经达到最大线程数 maximumPoolSize,如果没有达到,则会调用 addWorker() 方法创建一个非核心线程去执行任务;(2)如果工作线程数大于核心线程数,即线程池核心线程数已满,则新任务会被添加到阻塞队列中等待执行,当然,添加队列之前也会进行队列是否为空的判断;第一个完成的任务的结果会被get()方法返回。(4)如果当前线程的数量已经达到了最大线程数时,当有新的任务提交过来时,会执行拒绝策略。
2023-10-22 22:22:44 538
原创 算法:两个字符串:abcdefg,10abcf,计算得出:位置0多出:10 位置3缺少:de 位置6错误,应为:gh
取 idx1和idx2作为滑动窗口起点。以 str1 字符串1为基准,遍历str2字符串2寻找相同的字符。
2023-08-07 10:36:58 232
原创 Byte buddy 使用记录
Advice.OnMethodEnter //方法进入前记录开始时间if(t!= null) {} else {} } }@Override//监听程序准备事件,注入 } }定义 resources/META-INF/spring.factories。
2023-06-30 22:47:57 450
原创 Post请求中@RequestParam和@RequestBody的使用
后面的参数,或者Content-Type为multipart/form-data、application/x-www-form-urlencoded时的http body数据。@RequestBody用来接收http post请求的body,前端传入序列化好的json数据,后端可以解析为json对象(Content-Type需要指定为 application/json)。如何在一个@RestController方法中混合使用@RequestParam和@RequestBody呢?
2023-05-11 17:08:19 2386 1
原创 ES大量数据条件检索准确性问题
ES的排序都是基于评分,而评分是基于当前分片的词频进行计算,每个分片节点的数据评分不一样;ES中基于分片的搜索方式,是分2个阶段进行的,即Query阶段和Fetch阶段。ES的搜索类型有2种;
2022-07-16 13:47:00 1196
原创 设计一个任务处理引擎(一)
业务说明:在工作中,业务上涉及到大量的定时任务,我公司目前采用的是当当的ElasticJob分布式定时任务框架搭建的,由于业务已经成型,在定时任务上改造不太合适,最终决定自己设计一套任务处理框架;用户监控、调整实施运行的每一个任务;业务场景我们的业务场景主要是:一个公司 + 多个账户 ,每个账号下的拥有若干个任务;类似于下面的构图;设计原因由ElasticJob控制若干台机器执行任务,由于Elasticjob的局限性,操作不到具体的任务1、任务2等等数据,如:监控运行时长、强制中断,又或者运
2022-05-28 15:49:51 804
转载 Java8中list转map方法
常用方式1.利用Collectors.toMap方法进行转换public Map<Long, String> getIdNameMap(List<Account> accounts) { return accounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername));}其中第一个参数就是可以,第二个参数就是value的值。2.收集对象实体本身在开发过程中我们也需要
2022-04-24 17:46:52 63454 3
原创 记录Jaeger
openTrace语义标准https://www.jianshu.com/p/7a08e7c1835cjaeger是按照 openTrace标准构建的链路追踪程序;Jaeger实现https://www.jianshu.com/p/fbedfcdea606docker 安装https://blog.csdn.net/weixin_40242845/article/details/123421309java端应用:注意: 给Endpoint 地址 http://x.x.x.x:14268/a
2022-04-17 20:55:27 601
原创 ES多字段分组聚合(JAVA)
/** * 多字段分组并求和;实现sql:select field1, field2, sum(field3) from table_name group by field1, field2; */ public static void twiceAggSum(QueryBuilder query, String tableName, String groupField1, String groupField2, String sumField) { String
2022-04-07 14:43:18 5513
原创 Linux 安装mysql
安装指导https://www.cnblogs.com/brianzhu/p/8575243.html默认密码MySQL在运行的时候会有一个日志文件,它存在于/var/log/mysqld.log,我们在安装完成后第一次启动MySQL服务时,MySQL生成的随机密码就在这个文件里,我们可以直接用下面这条命令显示出这个文件里的所有内容:cat /var/log/mysqld.log找到下面的内容A temporary password is generated for root@loca
2022-02-12 22:08:08 844
原创 权重随机算法
package demo.Chooser;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.concurrent.ThreadLocalRandom;import java.util.concurrent.atomic.AtomicInteger;/** * @aut
2022-01-24 19:36:20 615
原创 Java异步执行方法
一.利用多线程直接new线程Thread t = new Thread(){ @Override public void run() { longTimeMethod(); }};使用线程池private ExecutorService executor = Executors.newCachedThreadPool() ; public void fun() throws Exception { executor.submit(new Runna
2021-10-11 22:52:46 15347
原创 计算List类集、数组、Map及常用数据类型等占用字节大小。
public class ByteSizeUtils { public static int getByteSize(List<?> datas) { int byteSize=0; try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream os = new ObjectOutputStream(
2021-09-15 15:57:30 1179
原创 常用名称校验的正则表达式
先推荐一个在线测试/学习正则表达式的网址,http://www.gskinner.com/RegExr/1、一个正则表达式,只含有汉字、数字、字母、下划线不能以下划线开头和结尾: ^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$ 其中:^ 与字符串开始的地方匹配(?!) 不能以_开头(?!.*?$) 不能以_结尾[a-zA-Z0-9_\u4e00-\u9fa5]+ 至少一个汉字、数字、字母、下划线$ 与字符串结束的地方匹配2、只含有汉字
2021-08-27 14:50:25 1766
原创 React 生命周期使用记录
import React from 'react';import { Modal, Button } from 'antd';/** * 注意此组件的调用方式, 通过状态去 装载和卸载 */class PolyvCloudMediaPlayer extends React.Component { // 构造函数, 组件应用的时候 就会调用 constructor(props) { super(props); this.state = {
2021-07-30 12:48:41 188
转载 Java中统计耗时的方法
时间差统计这种方式是最简单的方法,记录下开始时间,再记录下结束时间,计算时间差即可。public class TimeDiffTest { public static void main(String[] args) throws InterruptedException { final long startMs = TimeUtils.nowMs(); TimeUnit.SECONDS.sleep(5); // 模拟业务代码 System.o
2021-07-10 19:20:08 4274
原创 在Linux下查询占用CPU较高的线程信息
原理通过top找到占用CPU高的进程pid,通过ps找到该进程中占用CPU高的线程tid,最后通过jstack找到该线程的堆栈信息,最后根据堆栈信息排查问题。top找到高占用CPU的java进程pid命令:top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2021-06-16 09:26:56 3986
原创 java中List集合分批处理
public static int BULK_COUNT = 2000; public static <T> List<List<T>> splitList(List<T> oriList,boolean isParallel){ if(oriList.size() <= ESConstant.BULK_COUNT){ List<List<T>> splitList = ne...
2021-05-13 19:38:21 1470
原创 批处理工具
前言这是自己在工作中根据ElasticSearch的BulkProcessor写的一个批处理方法。主要支持有:1、当数据达到一定阈值的之后,进行触发消费操作2、当执行时间达到一定时间后,执行操作;3、支持监听任务的执行过程4、支持重试机制代码地址:batchProcessor...
2021-05-05 17:32:20 171
原创 Flink系列一:基本的安装部署和使用
本篇文章记录我在学习和使用Flink相关的知识。一、安装部署:直接参考官网教程Flink单机安装教程二、启用$ ./bin/start-cluster.shStarting cluster.Starting standalonesession daemon on host.Starting taskexecutor daemon on host.客户端localhost:8081...
2021-04-15 18:06:01 195
原创 Springboot1.X升级到2.X的填坑
一、SpringBootServletInitializer 类所在包的变化当 SpringBoot 准备打成 war 包部署时,我们需要继承 SpringBootServletInitializer 类。在 SpringBoot1.5 版本中,SpringBootServletInitializer 类在 org.springframework.boot.web.support 包,而到了 SpringBoot2.2 版本,SpringBootServletInitializer 类迁移到了 org.
2021-03-20 13:04:53 1148
原创 URL中匹配是否有{}、[]、()
public static boolean containBracket(String url){ Stack<Character> sc=new Stack<Character>(); char[] c=url.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i]=='('||c[i]=='['||c[i]=='{') { ...
2021-03-02 18:39:01 748
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人