- 博客(33)
- 收藏
- 关注
原创 mvcc多版本并发控制
mvcc(Multiversion Concurrency Control)多版本并发控制,是现代数据库(包括Mysql、Oracle、PostgreSQL等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库并发场景下的吞吐性能。说白了,mvcc就是“维持一个数据的多个版本“。
2024-03-02 11:03:16
982
原创 linux命令相关
more命令类似cat,cat命令是整个文件的内容从上到下显示在屏幕上,more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键就往下一页显示,按B键就会往回一页显示。free -s 5 周期性的查询内存使用信息,每5秒执行一次命令。所以这里2>&1的意思就是将标准错误也输出到标准输出当中。通常超过4个G,文件会下载不下来,需要分割文件。free -m 以MB为单位显示内存使用情况。free -h 以GB为单位显示内存使用情况。三个系统文件的文件描述符分别为0,1和2。
2024-02-01 09:58:14
383
1
原创 springcloud
zuul是spring clound中的微服务网关,是spring cloud 组件之一,用于提供动态路由、请求过滤和负载均衡等功能。
2024-01-26 10:31:34
798
1
原创 Java 锁概念分类
共享锁就是允许多个线程同时获取一个锁,一个锁可以同时被多个线程拥有。排他锁也称作独占锁,一个锁在某一时刻只能被一个线程占有,其他线程必须等待锁被释放之后才可以获取到锁。可重入锁的意义在于防止死锁。所谓重入锁,指的是以线程为单位,当一个线程获取对象锁之后,这个线程可以再次获取本对象的锁,而其他的线程是不可以的。实现原理是通过为每个锁关联一个请求计数器和一个占有它的线程,当计数为0时,认为锁是未被占有的;线程请求一个未被占有的锁时,JVM将记录锁的占有者,并且将请求计数器置为1。
2024-01-10 16:54:22
883
1
原创 java cas
CAS, compare and swap的缩写,中文意思为 比较并交换。cas操作包含3个操作数,内存位置V,预期原值A,新值B。如果内存位置的值和预期原值相匹配,那么处理器会自动将该位置值更新为新值,否则,处理器不做任何操作。
2024-01-08 10:10:14
887
原创 Java基本数据类型
Java中的基本类型数据(Primitive Data Types)是Java语言中预先定义好的、不可再细分的数据类型,它们直接存储值,而不是引用。
2024-01-05 10:17:45
342
1
原创 Java基础-双亲委派机制
其实就是Java加载类的方式。Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的calss文件加载到内存中。当加载某个类的class文件时,Java虚拟机采用的是双亲委派模式。当一个类加载请求到达类加载器时。类加载器首先把请求转发给其父加载器处理。若所有父加载器都不能处理(或没有父加载器),则当前类加载器才会尝试自己去加载这个类。如果当前类加载器也不能找到所需的类,则抛出ClassNotFoundException异常。这种机制就叫双亲委派。
2024-01-04 10:47:52
393
1
原创 java拷贝对象
如果要使用clone方法,对象必须实现java.lang.Cloneable 接口,否则调用clone方法会报错:throws CloneNotSupportedException ,从上面对clone方法的注解可知clone方法的通用约定:对于任意一个对象X,
2024-01-03 16:49:15
386
1
原创 Java创建对象的方式和过程
例如:线程A要给对象分配8kb,读取到指针当前的位置,时间片用完,切换到线程B,线程B要给它的对象分配16kb,也读取到指针当前的位置(和线程A读取到的一样),将指针向空闲内存方向移动16kb大小,线程B时间片用完,切换到线程A继续执行,由于线程A使用的指针位置还是之前读到的。假设Java堆内存是绝对规整的,所有被使用过的内存都被放在一边,空闲的内存被放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅把那个指针指向空闲方向挪动一段与对象大小相等的距离。这些信息存放在对象的对象头中。
2023-12-25 18:40:30
52
1
原创 happen-before
学习happens-before的目的不是只限于知道这些规则的存在,而是要进一步知道如何实现和维护这些happens-before关系,在代码中加以注意。Happens-before 规则是从java代码设计层面保证有序性和可见性的机制。本文将会以图示、样例代码和解释相结合的方式,力图阐述清楚happens-before的原理,为理解如何保证线程安全性打下扎实的基础。
2023-12-25 11:48:02
56
1
原创 JAVA内存模型
是一种确保特定内存操作顺序的指令,他主要用于控制并发环境下的内存可见性和一致性。1. 阻止重排序内存屏障可以防止编译器和处理器对内存操作进行重排序。在内存屏障之前的操作必须在屏障之后的操作 之前完成。2.确保可见性内存屏障能够强制更新当前线程的工作内存与主内存之间的数据同步。在一个线程写入一个变量后放置一个写屏障,可以确保其他线程能够看到这个写入的最新值。3.维持数据依赖性内存屏障能够维护程序中的数据依赖性,确保不会因为重排序而破坏程序的逻辑。volatile关键字。
2023-12-23 18:19:34
864
1
原创 mysql in查询
mysql in 查询 索引失效问题主键查询select * from where id in(1,2,4,5…)这种的主键索引不会失效,包括where条件又其他条件的,也不会导致索引失效。
2021-08-10 19:30:23
706
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人