并发
文章平均质量分 94
学习并发,理解并发原理,解决并发
搬砖界的小白
凡所迹遇,绝非偶然
展开
-
【并发】第九篇 Atomic原子操作类 - 字段更新器类详解
Atomic的字段更新器类是Java中一种用于实现线程安全的字段更新操作的类。它提供了一组原子操作,可以对字段进行原子性的更新。在并发环境中,多个线程同时更新一个字段可能会出现竞态条件(Race Condition)导致数据不一致的问题。Atomic的字段更新器类基于CAS(Compare And Swap)操作机制来保证对字段的原子操作,避免了竞态条件的发生。Atomic的字段更新器类的常用实现包括(原子更新整型的字段的更新器)、(原子更新长整型字段的更新器)、(原子更新引用类型里的字段)等。原创 2024-04-17 18:03:06 · 597 阅读 · 0 评论 -
【并发】第八篇 Atomic原子操作类 - 引用类型类详解
Atomic原子操作类是Java中提供的一组线程安全的基本数据类型操作类,可用于实现线程安全的并发编程。它们可以确保在并发环境下对变量进行原子操作,即不会被其他线程中断或同时修改。原子更新基本类型的 AtomicInteger,只能更新一个变量, 如果要原子更新多个变量,就需要使用这个原子更新引用类型提供的类,包括。注: 源码版本是基于JDK1.8 版本。原创 2024-04-17 16:33:43 · 974 阅读 · 0 评论 -
【并发】第七篇 Atomic原子操作类 - 数组类型类详解
Atomic原子操作类是Java中提供的一组线程安全的基本数据类型操作类,可用于实现线程安全的并发编程。它们可以确保在并发环境下对变量进行原子操作,即不会被其他线程中断或同时修改。原创 2024-04-16 14:55:11 · 594 阅读 · 0 评论 -
【并发】第六篇 Atomic原子操作类 - 基本类型类详解
Atomic原子操作类是Java中提供的一组线程安全的基本数据类型操作类,可用于实现线程安全的并发编程。它们可以确保在并发环境下对变量进行原子操作,即不会被其他线程中断或同时修改。常用的基本类型类有AtomicLong和。原创 2024-04-15 16:39:03 · 934 阅读 · 0 评论 -
【并发】 第五篇 原子操作(二) - CAS 详解
CAS是"比较并交换"(Compare and Swap)的缩写。是一种并发控制机制,用于实现多个线程同时对同一数据进行原子操作(读取、写入、更新),并且能够保证操作的一致性。# 1.比较:通过比较当前值和期望值是否一致来判断是否修改成功# 2.交换:如果一致则修改,否则重新尝试。CAS的一种常见应用是实现乐观锁。在乐观锁机制中,线程在更新共享变量之前先检查该变量是否被其他线程修改过,如果没有修改则更新,否则重新尝试。CAS操作正是基于这个原理来实现的。原创 2024-04-12 14:49:49 · 776 阅读 · 0 评论 -
【并发】 第四篇 原子操作
此时,如果有其他线程也执行对该共享变量的值进行修改操作, 那么上述的三个步骤,就会受到其他线程的干扰,最终内存中的共享变量值可能就不是期望的结果。这是因为每个线程最开始从内存中获取的值, 有可能被其他线程修改了, 线程之间的数据是不同步的, 导致线程最后写入的值会被其他线程覆盖。上述的例子中,线程的操作会受到其他线程的干扰, 并非原子操作, 而使用原子操作即可解决上述现象。原子操作是指不能被中断的一组操作,要么全部执行成功,要么全部不执行,不会出现部分执行的情况。将上面的例子代码优化下,原创 2024-04-12 10:48:38 · 421 阅读 · 0 评论 -
【并发】第三篇 Hash冲突的解决方法
哈希(hash)是将任意长度的输入数据转化为固定长度的输出数据的算法。哈希函数会将输入数据压缩并映射为一个固定长度的哈希值,通常用一个字符串或数字来表示。哈希冲突是指两个不同的输入值在经过哈希函数计算后得到了相同的哈希值。由于哈希函数的输出长度是固定的,而输入的数据可能有无限多的可能性,所以哈希冲突是不可避免的。哈希冲突会引起一些问题,例如当使用哈希表进行数据存储时,如果有两个不同的键经过哈希函数计算得到了相同的哈希值,就会导致数据冲突,可能会导致数据丢失或覆盖。原创 2024-03-27 17:47:53 · 813 阅读 · 0 评论 -
【并发】第二篇 ThreadLocal详解
ThreadLocal 是 Java 中的一个类,它提供了线程局部变量的机制。线程局部变量是指每个线程都有自己独立的变量副本,线程之间互不影响。通常情况下,如果多个线程同时访问一个共享变量,需要进行同步来保证线程安全,如Synchronized。而使用 ThreadLocal 也可以避免线程安全问题,因为每个线程都拥有自己的变量副本,且可以独立地操作自己的变量副本,而不会影响其他线程的副本。线程之间的变量副本互不干扰,保证了线程安全。原创 2024-03-27 11:05:09 · 961 阅读 · 0 评论 -
【并发】第一篇 引用类型详细介绍
Java中有四种引用类型,它们分别是强引用(Strong Reference),软引用(Soft Reference),弱引用(Weak Reference)和虚引用(Phantom Reference)。每种引用类型在Java垃圾回收过程中的行为和使用场景略有不同。原创 2024-03-21 00:03:23 · 917 阅读 · 0 评论