- 博客(12)
- 收藏
- 关注
原创 05-深入理解ThreadLocal底层原理
ThreadLocal是一个线程内部的存储类,可以在指定的线程内存储数据,并且该数据只有指定的线程能够获取到,线程之间相互独立。
2023-08-04 17:23:52
202
原创 04-并发编程之Java线程池底层原理分析
一个管理线程的池子或容器,是一种基于思想管理线程的工具。线程池的作用是管理线程、减少线程对象创建和销毁的性能开销。
2023-08-03 16:50:14
336
原创 Mybatis-plus解析sql发生异常:net.sf.jsqlparser.JSQLParserException
在使用mybatis-plus的过程中,有一个jsonb字段使用了jsonb_exists_any (field_name, text[])Caused by: net.sf.jsqlparser.JSQLParserException: Encountered unexpected tokenMyBatis_Plus框架中,有多租户的功能,MP会进行数据权限的过滤导致的,可以使用下面的注解(+配置)解决:@SqlParser(filter = true)、@InterceptorIgnore(tena
2023-08-01 18:44:37
5406
原创 PostgreSql表字段变更常用sql
修改字段类型长度ALTER TABLE 表名ALTER COLUMN '字段名' type varchar(255);ALTER TABLE 表名 ALTER COLUMN relate_arrange_order_nos type text;设置字段允许为空ALTER TABLE 表名 ALTER COLUMN '字段名'DROP NOT NULL;设置字段不能为空ALTER TABLE 表名 ALTER COLUMN '字段名' SET NOT NULL;
2023-07-26 14:47:52
3556
原创 PostgreSql死锁问题处理
并发场景下,大批量消费mq消息更新到数据库时,没有对数据进行统一排序导致的死锁问题。通过报错日志定位到了具体的业务代码以及导致死锁的sql。即执行sql发生了如下的情况:事务A更新数据1、2,事务B更新数据2、1,出现了循环等待锁的情况Session_A执行:update table_name set column = xxx WHERE id = 1;Session_B执行:update table_name set column = xxx WHERE id = 2;
2023-07-25 16:50:05
1832
1
原创 03-并发编程之深入理解Java线程
线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给 CPU 执行 。线程,有时被称为轻量级进程(Lightweight Process,LWP),是操作系统调度(CPU调度)执行的最小单位。
2023-07-24 16:04:45
74
原创 02-深入理解CPU缓存架构&缓存一致性
CPU缓存(Cache Memory)即高速缓冲存储器,是位于CPU和主内存之间的一种容量较小但速度很快的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,减少CPU的等待时间,提高了系统的效率。
2023-07-20 16:16:11
787
原创 01-并发编程之并发三大特性&JMM模型
Java虚拟机规范中定义了Java内存模型(Java Memory Model,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。JMM描述的是一种抽象的概念,一组规则,通过这组规则控制程序中各个变量在共享数据区域和私有数据区域的访问方式,JMM是围绕原子性、有序性、可见性展开的。
2023-07-20 11:42:42
82
原创 Java并发编程(多线程)知识体系,从入门到放弃
Java并发编程的知识多且杂,全部学习有一定的难度,这里先列一下大纲,感兴趣的童鞋可以按照发布文章的顺序逐篇学习,如果对你有帮助,赞一个就是对我最大的认可和鼓励(*^▽^*)。
2023-07-11 16:29:56
98
原创 如何查看mysql的权限
1. 在navicat的mysql数据库新建查询:select * from mysql.user (或者直接查看mysql中的user表)2. 打开cmd进入没有mysql>,执行show grant for 你的用户(如:show grant for root@'localhost')
2017-11-21 17:57:43
5156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人