
并发编程
文章平均质量分 92
qq_41956309
这个作者很懒,什么都没留下…
展开
-
深入理解ThreadLocal
ThreadLocal是JDK包提供的,ThreadLocal 提供了一种变量与线程绑定的机制,它提供线程本地变量,比如在线程A中设置了一个变量ThreadLocalA 其中存储的值为ABC 在线程B中想拿到ThreadLocalA 中存储的ABC是拿不到的返回结果是空。如下图所示:每个线程的值只能自己线程访问到 其他线程拿不到,这样就实现了隔离。原创 2023-10-27 13:43:15 · 84 阅读 · 0 评论 -
“深入探讨Java JUC中的ReentrantLock锁:实现多线程同步与并发控制“
ReentrantLock 是 Java 中的一种锁实现,它提供了与传统的 synchronized 关键字相似的功能,但具有更多的灵活性和控制能力。原创 2023-10-24 20:42:39 · 327 阅读 · 0 评论 -
掌握Java中的volatile关键字
CPU缓存一致性问题是指在多处理器或多核系统中,每个处理器核心具有自己的高速缓存(Cache),而共享相同主内存(Main Memory)的数据可能存在多个缓存中的不一致性。这可能导致在并发多线程或多进程环境中,数据的不一致性和错误结果。Processor02修改缓存x=20的值改为40 同步到本地缓存行 但是没同步到主内存中 所以Processor0读到的还是X=20是之前的值所以造成了缓存的不一致性cpu与内存 输出/输入设备传递信息的公共通道 当cpu访问内存进行数据交互时 必须经过总线来传输。原创 2023-10-21 18:53:53 · 211 阅读 · 1 评论 -
原子类在多线程编程中的重要性
原子类是Java中的一组类,用于实现多线程环境下的原子操作。原子操作是一种不可分割的操作,它要么完全执行,要么完全不执行,不会被其他线程中断。原子类通过使用底层的硬件原语或锁机制来确保多线程访问时的数据安全性。原创 2023-10-17 10:39:51 · 124 阅读 · 0 评论 -
深入了解CAS(Compare and Swap):Java并发编程的核心
ABA问题是一种在并发编程中常见的问题,它涉及到CAS(Compare and Swap)操作。ABA问题的核心是在一个线程尝试修改共享变量时,共享变量的值从A变为B,然后再变回A。这种情况可能导致CAS操作成功,尽管在中间发生了其他操作,从而引发意外的行为。具体来说,ABA问题的情况如下:线程T1读取共享变量的值A,并保存在本地。在此期间,线程T2修改共享变量的值,将其从A改为B,然后再改回A。线程T1尝试使用CAS操作将共享变量的值从A改为新值C。原创 2023-10-16 14:17:01 · 551 阅读 · 0 评论 -
深入了解进程:计算机中的任务管理与隔离
进程控制(Process Control)是指操作系统通过管理和协调进程的创建、调度、同步、通信和终止等活动,以确保系统资源的有效利用和进程之间的有序协作。进程控制涉及到操作系统如何创建、暂停、终止、调度和同步多个进程,以及如何在进程之间进行通信。进程通信 是指两个进程之间产生数据交互进程调度(Process Scheduling)是操作系统的核心功能之一,它指的是操作系统决定哪个进程获得CPU时间并在CPU上执行的过程。原创 2023-10-12 09:26:22 · 452 阅读 · 0 评论 -
深入了解线程:并发编程的核心要点和应用
用户级线程(User-Level Threads)是在用户空间(用户程序的地址空间)中由线程库(Thread Library)提供支持的线程。这种线程的创建、调度和管理都在用户空间进行,而不需要内核(操作系统)的干预。用户级线程是与操作系统无关的,操作系统并不知道它们的存在。在Java中,用户级线程通常是通过使用线程库或第三方框架来实现的,而不是使用标准的Thread类。一个常见的用户级线程库是协程库,如Quasar或Project Loom。这些库提供了在用户空间中实现用户级线程的功能。原创 2023-10-12 16:31:48 · 153 阅读 · 0 评论 -
深入理解 Java 中的 synchronized 关键字
JMM(Java Memory Model,Java 内存模型)是一种规范,用于定义多线程程序中的内存访问规则和语义,确保多线程程序的正确性和可移植性。JMM 定义了线程如何与主内存和工作内存交互,以及如何确保多线程程序中的内存可见性和一致性。偏向锁(Biased Locking)是Java中用于提高单线程访问同步块的性能的一种锁机制。它的核心思想是,当一个线程第一次访问一个同步块时,虚拟机会将锁对象标记为偏向锁,并记录获取锁的线程ID。原创 2023-10-15 16:12:02 · 135 阅读 · 0 评论 -
理解并发编程:提高性能与效率的关键
并发编程是一种编程范式,旨在有效地处理多个任务同时执行的情况。在计算机科学中,"并发"指的是在相同时间段内执行多个任务或操作,而不是一次执行一个任务。并发编程的主要目标是充分利用计算机系统的多核处理器和资源,以提高程序的性能和效率。原创 2023-10-12 16:33:53 · 338 阅读 · 0 评论