TuBoShu
  • 首页
  • 归档
  • 分类
  • 标签
  • 生活
  • 关于
Java并发 - Semaphore 详解

Java并发 - Semaphore 详解

1. Semaphore 类结构 Semaphore 的类结构与ReentrantLock 的类结构相同,类内部总共存在Sync、NonfairSync、FairSync三个静态内部类。Sync类继承AbstactQueuedSynchronizer。NotfairSync和FairSync继承Sync。 1.1. Semaphore 类方法1234567891011121314151617
2025-12-01
#JUC
Java并发 - synchronized关键字

Java并发 - synchronized关键字

Java并发 - synchronized关键字synchronized关键字在Java中的主要作用是确保多线程环境下对共享资源的安全访问,避免出现竞态条件和数据不一致的问题。 它的主要意义包括以下几个方面: 保证原子性:synchronized关键字能够确保被它修饰的方法或代码块在同一时刻只能被一个线程执行。 解决竞态条件:使用synchronized关键字可以防止竞态条件的发生,确保对共享资
2025-12-01
JAVA
#JUC

Java并发 - volatile关键字

Java并发 - volatile关键字1. volatile的作用详解 可见性: 当一个线程对 volatile 变量进行写操作时,这个变量的新值会立即被刷新到主内存,而不是在线程本地缓存中等待一段时间。 当其他线程需要读取这个变量时,它会从主内存中重新加载,而不是使用线程本地缓存中的值。 禁止指令重排序: volatile 关键字禁止指令重排序,确保在执行到 volatile 变量的读操作
2025-12-01
#JUC
Java并发-线程池详解

Java并发-线程池详解

Java并发-线程池详解1. 线程池概述线程池(Thread Pool)是基于池化思想管理线程的工具,广泛应用于多线程服务中,如Web服务器、数据库连接池等。 1.1 什么是线程池线程池是一种多线程处理形式,它预先创建若干个线程,这些线程在没有任务处理时处于等待状态,当有任务来临时就可以立即处理,避免了线程创建和销毁的开销。 1.2 为什么需要线程池在没有线程池的情况下,频繁创建和销毁线程会带来以
2025-12-01
#JUC

Java并发 - 理论基础

1. 多核多线程的产生从计算机的发展史上我们可以了解到,计算机是从单核单线程发展到如今多核多线程。 多核多线程的出现是计算机发展史上的一个自然演进,涉及到硬件和软件两个方面的考量。以下是一些主要的原因: 需求提高: 随着计算机应用的不断扩展和复杂性的增加,对计算能力的需求也在不断提高。单核处理器在性能上有一定的瓶颈,难以满足日益增长的计算需求。 摩尔定律: Moore’s Law 预测了集成电
2025-12-01
#JUC
阿里聚石塔-内部服务器搭建

阿里聚石塔-内部服务器搭建

阿里聚石塔-内部服务器搭建阿里聚石塔,需要在阿里内部搭建服务器,并且只能使用对应的端口,并且只能暴露一个request请求 使用策略模式和工场模式去创建对应的实现接口 1. 对外暴露的Contoller12345678910111213141516171819202122232425@RestControllerpublic class TaoBaoMethodWebController 
2025-11-29
#SprintBoot

SpringBoot自定义注解支持EL表达式

SpringBootAOP + SpringEL表达式 实现动态传参(基于MethodBasedEvaluationContext)SPEL表达式Spring 提供的EL表达式解析特性强化了注解能力。能做到注解中的属性值动态地从方法参数中获取,而不是简单地设置固定值。 AOP依赖12345<dependency> <groupId>org.springframework.
2025-11-29
JAVA
#SpringBoot
JVM详解

JVM详解

JVM JAVA 虚拟机对象头包括两部分信息 第一部分:对象自身运行时数据 哈希码(HashCode)、GC 分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。【Mark Word】 32位虚拟机为32bit,64位虚拟机为64bit 例如在32位的虚拟机中未被锁定的情况下: 25bit记录存储对象哈希码、4bit用于存储对象分代年龄、2bit用于存储锁标志位、1bit固定为0
2025-11-29
JAVA
#JVM
Java锁

Java锁

1. 乐观锁&悲观锁 1.1 特点乐观锁:假定多个事务之间很少发生冲突,操作不加锁。发生错误的时候进行回滚或重试。 悲观锁:假定冲突可能频繁发生,先加锁,阻止其他事务发生,操作后释放锁。 实现机制 乐观锁:实现方式是利用版本号(versioning)或时间戳(Timestamp),在进行更新的时候检查版本号或时间戳是否仍然匹配。 悲观锁:使用传统的锁机制,如synchronize 关键字
2025-11-28
JAVA
#JUC
欢迎来到我的博客

欢迎来到我的博客

欢迎欢迎来到我的个人博客!这里将记录我的技术学习和生活点滴。
2025-11-27
随笔
#开始
12

搜索

Hexo Fluid