Kon4tsu's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

MySQL是怎么加行级锁的?

MySQL是怎么加行级锁的?假设有一张表 user,只有三个字段 id (主键索引) 、 age(非唯一索引)和name(无索引)。 表中现有数据: id: 10, age: 10_v1, name: aaa id: 11, age: 10_v2, name: bbb id: 20, age: 20, name: ccc id: 30, age: 30, name: ddd 1. 唯一索引等值
2025-12-11
MySQL

单例模式的double check与volatile

单例模式为什么需要使用单例模式节省内存、节省计算。 12345678910111213141516171819public class Singleton { private static volatile Singleton singleton; private Singleton() { } public static Singleto
2025-12-08
JUC

AQS

AQS 引用:JavaGuide 1. 什么是AQS?AQS,全称AbstractQueuedSynchronizer,是Java中的一个抽象类,是Java并发包中提供的构建锁和同步器的基本框架。像ReentrantLock,CountDownLatch,Semaphore等类都使用到AQS完成线程间同步 2. CLH锁AQS是基于CLH锁进一步优化实现的,那什么是CLH锁呢? CLH 锁对自旋
2025-05-24
JUC

线程池

线程池 引用: javaguide https://javabetter.cn/sidebar/sanfene/javathread.html 1. 线程池优点 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等待线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定
2025-05-23
JUC

synchronized3

synchronized3 引用: https://www.cnblogs.com/duanxz/p/4458342.html https://www.cnblogs.com/vipstone/p/15121109.html 1. 自旋锁线程的阻塞和唤醒需要CPU从用户态转为核心态,频繁的阻塞和唤醒对CPU来说是一件负担很重的工作,势必会给系统的并发性能带来很大的压力。同时我们发现在许多应用
2025-05-23
JUC

synchronized2

synchronized21. Java的对象头在JVM中,对象是分成三部分存在的:对象头、实例数据、对齐填充 对象头是我们需要关注的重点,它是synchronized实现锁的基础,因为synchronized申请锁、上锁、释放锁都与对象头有关。对象头主要结构是由Mark Word 和 Class Metadata Address组成: Mark Word:存储对象的hashCode、锁信息或
2025-05-23
JUC

sleep()和wait()、start()和run()

sleep()和wait()、start()和run()1. sleep()、wait()1.1 相同点两者都可以暂停线程执行 1.2 区别 wait()方法释放了锁;sleep()方法没有释放锁 wait()方法通常被用于线程间的通信;sleep()方法通常被用于暂停执行 wait()方法调用后,需要别的线程使用notify()或notifyAll()方法唤醒当前线程,或者使用wait(long
2025-05-22
JUC

synchronized1

synchronized11. synchronized的用法1.1 修饰实例方法给当前对象实例加锁,进入同步代码前要获取当前对象实例的锁 123synchronized void method() { //业务代码} 1.2 修饰静态方法给当前类加锁,进入同步代码之前要获取当前class的锁 123synchronized static void method()
2025-05-22
JUC

操作系统-死锁

操作系统-死锁1. 死锁的概念死锁只有满足以下四个条件时才会产生: 互斥条件:每个资源要么已经分配给了一个进程,要么就是可用的 持有并等待条件:已经得到了某个资源的进程可以再请求新的资源 不可剥夺条件:已经分配给一个进程的资源不能强制性地被抢占,它只能被占有它的进程显式地释放 环路等待条件:有两个或者两个以上的进程组成一条环路,该环路中的每个进程都在等待下一个进程所占有的资源 2. 死锁检测与
2025-05-21
操作系统

操作系统-进程管理

操作系统-进程管理1. 进程与线程1.1 进程进程是资源分配的基本单位 进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态 1.2 线程线程是独立调度的基本单位 一个进程中可以有多个线程,它们共享进程资源 1.3 进程与线程区别 进程 线程 拥有资源 进程是资源分配的基本单位 线程不拥有资源,线程可以访问隶属进程的资源 调度 从一个进
2025-05-21
操作系统
123456

搜索

Hexo Fluid