自旋锁与阻塞锁 最近在学锁相关的内容,有些内容比较纠结收集了很多资料才建立起锁相关这个体系的轮廓。 首先是操作系统线程5状态图,java虚拟机也可大致类比。 首先一个线程从就绪状态到运行状态,从运行状态到阻塞状态都要经过从用户态与内核态之间的切换,这一部比较耗时因为需要经过线程上下文数据的保存。 2023-02-12 技术 #java
sql运行的很慢排查 第一类:锁的原因mysql中有表锁,行锁,一些线程加了锁了之后占有着资源,其他线程再进入进行相关操作就可能一直在等待锁的释放导致感觉sql运行很慢 等表锁如执行 mysql> select * from t where id=1; 分析原因的时候,一般都是首先执行一下show processlist命令,看看当前语句处于什么状态。 2023-01-06 技术 #mysql
《You are Not Late! You are Not Early !》 很多时候无意义的焦虑很折磨人,这首诗挺能安慰人的。 纽约时间比加州时间早三个小时,New York is 3 hours ahead of California, 但加州时间并没有变慢。but it does not make California slow. 有人 22 岁就毕业了,Someone graduated at the age of 22, 但等了五年才找到好的工作!but wait 2023-01-03 读书 #阅读
《未选择的路》 记得这首诗应该是小学或初中课本上的一首诗。然后几年后又在《球形闪电》上看的了他的引用,那一刻颇受感动,理解了这首诗要表达的感觉。现在很多时候,在我将要面对一些选择的时候我都会情不自禁想起这首诗。 The Road Not Taken 未 选 择 的 路 by Robert Frost (美)弗罗斯特 Two roads diverged in a yellow wood, 黄色的树林里分出两条路, 2023-01-03 读书 #阅读
mybatis list实体类存入varchar字段 对与采集别人接口数据时,返回格式Json中常常会出现数组类型,如 1type:"{1,4,6,7}" 这时候用jackson去解析数据当然要用List type 来封装,但是我们又不想为这个type单独建一个数据表来存储他,就想用一个varchar字段就把这段数组字符串化的存于数据库。用mybatis-plus的话,直接用List 去对应varchar会报 2022-12-27 技术 #java #mysql
java线程池 为什么要使用线程池?线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。 线程池主要特点为:线程复用;控制最大并发数;管理线程。 2022-10-27 #java #多线程
java导出word文档 准备模板: 先预填写好word文档,比如字体,文字居中,动态扩展表格啥子的。然后选择另存为->选其他格式->保存为xml格式。保存后最好再修改后缀为doc,打开看看是否乱码了 2022-10-25 #java
写时复制 1,什么是写时复制(Copy-On-Write)容器?写时复制是指:在并发访问的情景下,当需要修改JAVA中Containers的元素时,不直接修改该容器,而是先复制一份副本,在副本上进行修改。修改完成之后,将指向原来容器的引用指向新的容器(副本容器)。 2022-10-20 #java #算法