s4 并发编程
文章平均质量分 96
并发编程
Kwan的解忧杂货铺@新空间代码工作室
I'm good at | 商务合作请联系工作室微信 13113691357
展开
-
【并发编程系列】内存同步问题
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2024-05-17 08:45:00 · 14135 阅读 · 33 评论 -
【并发编程系列】使用 CompletableFuture 实现并发任务处理
CompletableFuture 是 Java 中的一个类,它实现了 Future 接口,并提供了额外的方法来处理异步任务的结果。与传统的 Future 对象不同,CompletableFuture 可以利用回调函数和组合操作来处理任务的结果,从而实现更加灵活和高效的并发编程。通过本文,我们介绍了如何使用 CompletableFuture 类在 Java 中实现并发任务处理。原创 2024-04-03 23:48:56 · 12172 阅读 · 0 评论 -
【并发编程系列】putIfAbsent和getOrDefault用法
在 Java 中,和是用于Map接口的两个不同的方法,下面分别解释和的用法。原创 2024-01-18 15:54:18 · 12599 阅读 · 26 评论 -
【并发编程进阶7】线程池
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2022-04-17 10:17:57 · 6563 阅读 · 0 评论 -
【并发编程进阶6】ReentrantLock 和 LockSupport
首先明确下 synchronized 和 lock 接口均为可重入锁。重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。线程再次获取锁.锁需要去识别获取锁的线程是否为当前占据锁的线程,如果是,则再次成功获取。锁的最终释放.线程重复 n 次获取了锁,随后在第 n 次释放该锁后,其他线程能够获取到该锁.锁的最终释放要求锁对于获取进行计数自增,计数表示当前锁被重复获取的次数,而锁被释放时,计数自减,当计数等于 0 时表示锁已经成功释放。原创 2022-04-17 10:17:39 · 6424 阅读 · 0 评论 -
【并发编程进阶5】AQS介绍
AQS(AbstractQueuedSynchronizer)是 Java 并发包中实现锁、同步器等的基础框架,它提供了一种便于实现自定义同步器的模板方法。AQS 的核心思想是使用一个 FIFO 双向链表(即等待队列)来管理线程的状态和竞争资源的获取。AQS 基于这个等待队列,通过使用 volatile 变量和 CAS(Compare And Swap)指令来实现线程的等待和唤醒、资源的获取和释放。状态管理:AQS 使用一个整型的状态变量(state)来表示资源的状态。原创 2022-04-17 10:17:23 · 6472 阅读 · 0 评论 -
【并发编程进阶4】锁的内存语义
原子(atomic)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为“不可被中断的一个或一系列操作”。读操作:读 i 的当前值;改操作:在 i 的当前值上做+1 操作;写:将修改后的值写回内存。不管怎么重排序,单线程执行结果不变为了遵守 as-if-serial 语义,编译器和处理器不会对存在数据依赖关系的操作做重排序,因为为这种重排序会改变执行结果。但是,如果操作之间不存在数据依赖关系,这些操作就可能被编译器和处理器重排序。原创 2022-04-17 10:17:02 · 6381 阅读 · 0 评论 -
【并发编程进阶3】锁升级
和普通自旋的区别?JDK 1.5 的自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。自旋次数可以设定,通过自行设置自旋次数,此处举例说明设置为 10 次。原创 2022-04-16 11:05:19 · 6801 阅读 · 0 评论 -
【并发编程进阶2】volatile 与 Synchonized
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2022-04-16 11:04:33 · 6433 阅读 · 0 评论 -
【并发编程进阶1】
juc 是 java.util.concurrent 的简称,为了支持高并发任务,在编程时可以有效减少竞争条件和死锁线程.juc 主要包含 5 大工具包工具包描述locks- ReentrantLock: 独占锁,同一时间只能被一个线程获取,支持重入性。- ReentrantReadWriteLock: 读写锁,ReadLock 是共享锁,WriteLock 是独占锁。- LockSupport: 提供阻塞和解除阻塞线程的功能,不会导致死锁。executor。原创 2022-04-16 11:03:56 · 6329 阅读 · 0 评论 -
【并发编程基础5】实际应用
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2022-04-16 11:03:18 · 6945 阅读 · 0 评论 -
【并发编程基础4】用户态与内核态
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。原创 2022-04-16 11:02:37 · 6343 阅读 · 0 评论 -
【并发编程基础3】ThreadLocal介绍
ThreadLocal 是 Java 中的一个类,用于在多线程环境下维护线程本地变量。在 Java 中,每个线程都有自己的线程栈,用于存储局部变量,而 ThreadLocal 提供了一种线程级别的变量,每个线程都可以独立地访问和修改它,而不会影响其他线程的访问。使用 ThreadLocal 有以下几个要点:Thread 类中有一个 和一个 ,它们都是 类型的变量,而 是一个定制化的 HashMap.在默认情况下,每个线程中的这两个变量都为 null,只有当前线程第一次调用 的 set 或者 get原创 2022-04-15 09:36:28 · 6258 阅读 · 0 评论 -
【并发编程基础2】线程的状态
术语英文单词描述内存屏障是一组处理器指令,用于实现对内存操作的顺序限制缓冲行cache line缓存中可以分配的最小存储单位。处理器填写缓存线时会加载整个缓存线,需要使用多个主内存读周期原子操作不可中断的一个或一系列操作缓存行填充当处理器识别到从内存中读取操作数是可缓存的,处理器读取整个缓存行到适当的缓存(L1L2.L3 的或所有)缓存命中cache hit如果进行高速缓存行填充操作的内存位置仍然是下次处理器访问的地址时,处理器从缓存中读取操作数,而不是从内存读取写命中。原创 2022-04-15 09:36:13 · 6147 阅读 · 0 评论 -
【并发编程基础1】并发基础
并行和并发都是多任务处理的概念,但它们的含义不同。并行是指两个或多个任务在同一时刻执行,即在同一时刻有多个任务在同时进行。在计算机领域,多核 CPU 可以实现并行处理,即多个 CPU 内核同时执行不同的任务。在并行处理中,任务之间相互独立,不需要等待其他任务的完成。并发是指两个或多个任务在同一时间段内执行,即在同一时间段内有多个任务在交替进行。在计算机领域,单核 CPU 可以通过轮流执行各个任务来实现并发处理。原创 2022-02-24 11:44:01 · 216 阅读 · 0 评论 -
【并发编程系列】并发编程进阶
juc 是 java.util.concurrent 的简称,为了支持高并发任务,在编程时可以有效减少竞争条件和死锁线程.juc 主要包含 5 大工具包工具包描述locks- ReentrantLock: 独占锁,同一时间只能被一个线程获取,支持重入性。- ReentrantReadWriteLock: 读写锁,ReadLock 是共享锁,WriteLock 是独占锁。- LockSupport: 提供阻塞和解除阻塞线程的功能,不会导致死锁。executor。原创 2022-02-23 23:19:36 · 479 阅读 · 0 评论 -
【并发编程系列】并发编程基础
并行和并发都是多任务处理的概念,但它们的含义不同。并行是指两个或多个任务在同一时刻执行,即在同一时刻有多个任务在同时进行。在计算机领域,多核 CPU 可以实现并行处理,即多个 CPU 内核同时执行不同的任务。在并行处理中,任务之间相互独立,不需要等待其他任务的完成。并发是指两个或多个任务在同一时间段内执行,即在同一时间段内有多个任务在交替进行。在计算机领域,单核 CPU 可以通过轮流执行各个任务来实现并发处理。原创 2021-11-18 02:57:08 · 537 阅读 · 0 评论