线程池之ThreadPool与ForkJoinPool

一、 ThreadPool Executor一个线程池包括以下四个基本组成部分:1、线程池管理器(ThreadPool):用于创建并管理线程池,包括 创建线程池,销毁线程池,添加新任务;2、工作线程(PoolWorker):线程池中线程,在没有任务时处于等待状态,可以循环的执行任务;3、任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行,它主要规定了任务的入口,任务执行完后的

- 阅读全文 -

SpringBoot项目中使用分布式锁

一,Redis实现1,利用redis 客户端手动实现主要使用setnx 以及lua来实现。(不推荐)2,利用redisson实现引入一下pom<dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifac

- 阅读全文 -

在程序中监听Redis Key 过期

通过开启key过期的事件通知,当key过期时,会发布过期事件;我们定义key过期事件的监听器,当key过期时,就能收到回调通知。注意:由于redis key过期删除是定时+惰性,当key过多时,删除会有延迟,回调通知同样会有延迟。且通知是一次性的,没有ack机制,若收到通知后处理失败,将不再收到通知。需自行保证收到通知后处理成功。通知只能拿到key,拿不到value使用场景1、实现延时队列    

- 阅读全文 -

MySQL 8 中使用 Json

MySQL 8中 JSON 的使用推荐用 MySQL 8.0.17 以上的版本,性能更好,同时也支持 Multi-Valued Indexes;以下部分使用JSON_CONTAINS查询的地方说明:第二个参数只能为字符串,所以进行转换。因为参数需要json,json实际就是字符串JSON ARRAY字段的 创建索引、查询创建表CREATE TABLE `json_test` ( `id` in

- 阅读全文 -

MySQL事务、索引

Mysql事务事务四大特征原子性: 不可分割的最小操作单位 、要么同事成功、要么同时失败持久性: 当事务提交或回滚后, 数据都会被持久化到硬盘保存一致性: 事务前后,数据总量不变隔离性: 多个事务相互隔离事务隔离出现的问题概念: 多个事务处理同一批数据, 则会出现一些问题、设置不同的隔离级别就可以解决赃读: 即为事务1第二次读取时,读到了事务2未提交的数据。若事务2回滚,则事务1第二次

- 阅读全文 -