- 博客(8)
- 收藏
- 关注
原创 Mysql事务&&隔离级别&&事务优化
1.事务的特性:原子性 一致性 隔离性 持久性隔离性由锁和MVCC机制来实现持久性有redo log 日志来实现。
2025-02-23 17:58:52
937
原创 Java线程中断(Interrupt)与阻塞(park)的区别
对于线程中断和线程阻塞两个概念,经常性是混淆起来用,单纯地认为线程中断与线程阻塞的概念是一致的,都是值线程运行状态的停止。其实这个观点是错误的,两者之前有很大的区别;
2025-02-20 21:19:17
551
原创 CountDownLatch
3.随后进入一个自旋 先判断一下前置节点 是不是Head 当一个节点是Head的时候 我们认为该节点已经出队 如果一个节点的前置节点为Head证明当前节点可以被唤醒就去执行争抢锁的操作,(去执行tryAcquireShared()方法) 如果返回值》=0 就意味着锁空闲 就是说子任务已经全部完成,当前节点可以不用再等待 可以直接出队;是什么:CountDownLatch是一个同步工具类,用来协调多个线程之间的同步(即:用于线程之间的通信而不是互斥)。AQS里面两个模式分别是独占模式和共享模式。
2025-02-15 20:04:10
410
原创 (二)初步理解JVM虚拟机
我们运行一下下面的代码i ++){查看到这个Java程序的运⾏情况:这里需要我们重点关注的是 中间的Memory部分 ,这一部分就是记录JVM 内存使用的情况,后面的GC部分就是垃圾回收的执行情况,整体内存布局:如下图从Memory部分可以看到,⼀个Java进程会将他管理的内存分为heap堆区和nonheap⾮堆区两个部分。其中 ⾮堆区的⼏个核⼼部分像code_cache(热点指令缓存metaspace(元空间压缩类空间) 我们之前都接触到了。
2025-01-31 19:57:43
659
原创 初步理解JVM虚拟机
共享:堆:内存中最大的一个区域,对象实例和数组内部会划分出多个线程私有分配缓冲区;方法区:存储已经被虚拟机加载的类信息敞常量,静态变量 即使编辑器后的代码等数据;私有:虚拟机栈:局部变量表 操作数栈 方法出口;本地方法栈:Native方法;程序计数器:虚拟机字节码指令的地址或者UNdefined;3. 稍微具体的结构图:编译好class文件后才能交给JVM区执行,之后 class文件需要通过类加载机制把类加载到方法区 ,元数据区,然后需要交给执行引擎 将类中的指令解析出来去执行,
2024-12-31 10:38:24
749
原创 分布式锁相关总结
线程一加锁成功,就会启动一个 watch dog 看门狗,它是一个后台线程,会每隔 10 秒检查一下,如果线程 1 还持有锁,那么就会不断的延长锁 key 的生存时间。(1)获取锁的时候,使用setnx加锁,并使用expire命令为锁添加一个超时时间,超过该时间则自动释放锁,锁的value值为一个随机生成的UUID,通过此在释放锁的时候进行判断。(如果A抢占线程,然后再规定时间没有执行完逻辑,到期删除A锁,然后B过来了,锁旗标成了B,这个时候A执行完了,A再删除,这样就有误删B的情况存在)
2023-08-27 22:06:07
29
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人