
Java
文章平均质量分 79
Psycho_MrZhang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JUC并发工具类场景详解
是 Java 并发编程中的一种可重入的互斥锁,它位于包下。与传统的关键字相比,提供了更灵活的锁操作,支持公平锁和非公平锁、可中断的锁获取尝试、超时的锁获取尝试等特性。原创 2024-12-20 16:03:37 · 379 阅读 · 0 评论 -
Java中线并发安全
饿汉模式:适合于单例实例不需要延迟初始化的场景,线程安全,实现简单,但可能会造成内存浪费。懒汉模式:适合于单例实例需要延迟初始化的场景,但每次获取实例时都需要同步,影响性能。双重检查锁定:结合了懒汉模式和线程安全的优点,性能较好,但代码相对复杂。选择哪种方式取决于具体的应用场景和需求。如果对性能要求不高且不介意早期初始化,可以选择饿汉模式;如果需要延迟初始化且对性能有一定要求,可以选择双重检查锁定。原创 2024-12-20 13:11:09 · 975 阅读 · 0 评论 -
Java中原子性和CAS
这种情况下,如果一个操作不是原子性的(即不可分割的),那么在执行过程中可能会被其他线程中断,从而导致数据的不一致性。通过这些原子类,可以在多线程环境中实现高效的、无锁的并发控制,避免了传统锁带来的性能开销和复杂性。的值应该是2,但实际上却是1,这就是原子性问题的一个典型例子。:提供了一个原子的引用类,适用于需要线程安全的引用类型操作。:提供了一个原子的整数类,可以用于实现线程安全的整数操作。:提供了一个原子的长整数类,适用于需要更大范围的整数操作。:提供了一个原子的布尔值类,适用于需要线程安全的布尔操作。原创 2024-12-19 16:53:17 · 842 阅读 · 0 评论 -
JVM内存泄漏之ThreadLocal详解
提供了一种线程局部变量的机制,使得每个线程都有自己的变量副本,互不干扰。在多线程编程中,共享变量的使用通常需要考虑线程安全问题。在分布式系统中,事务管理需要确保每个线程的操作都是独立的。可以为每个线程分配一个独立的数据库连接,避免了线程间的竞争。可以为每个线程分配一个独立的事务上下文,确保事务的隔离性。在多线程环境下,每个线程都需要一个独立的数据库连接。在Web应用中,每个用户的请求可能由不同的线程处理。可以为每个线程提供一个独立的缓存,避免了缓存数据的竞争。在某些场景下,每个线程可能需要一个独立的缓存。原创 2024-12-18 15:27:34 · 472 阅读 · 0 评论 -
Java中 volatile 关键字的使用和存在背景
在Java中,多线程环境下更新共享变量时可能会出现脏读(Dirty Read)的问题,这是因为多个线程在并发访问和修改同一个变量时,可能会导致数据不一致。具体来说,当一个线程正在修改一个变量时,另一个线程可能读取到这个变量的中间状态,而不是最终的状态。原创 2024-12-17 14:18:40 · 354 阅读 · 0 评论