首页
文章列表
标签墙
返回找工具啦
线程同步
共 11 篇文章
Java Phaser 同步屏障为什么比 CyclicBarrier 更适合动态注册任务
2026-05-22 15:19:38
Java Phaser 同步屏障为什么比 CyclicBarrier 更适合动态注册任务 在需要多个线程同步完成某个阶段任务,然后才能一起进入下一阶段的场景中,CyclicBarrier 是一个常用的工具。但当参与同步的线程数量在运行时可能发生变化,或者任务被动态划分时,CyclicBarrier
JavaPhaser
同步屏障
CyclicBarrier
16
0
Java AQS条件队列Condition的await与signal实现
2026-05-11 12:50:26
Java AQS条件队列Condition的await与signal实现 Java并发包中的AbstractQueuedSynchronizer(AQS)是构建锁和其他同步组件的基础框架。Condition是AQS的内部类,提供条件等待功能,类似于Object的wait/notify,但更灵活且功能
Java并发编程
AQS
Condition
45
0
Java Exchanger线程间交换数据的同步工具
2026-05-06 03:23:01
Java Exchanger线程间交换数据的同步工具 Java Exchanger 是一个用于线程间协作的同步工具类,它允许两个线程在汇合点交换数据。它提供了一个同步点,在这个同步点,两个线程可以互换数据。这种设计模式非常适合像“生产者消费者”模式中,生产者需要缓冲区而消费者需要数据,或者遗传算法中
Java并发
多线程
线程同步
40
0
Java Phaser分阶段同步屏障替代CyclicBarrier的优势
2026-05-04 19:26:51
Java Phaser分阶段同步屏障替代CyclicBarrier的优势 Java并发包(J.U.C)中的 Phaser 是一个功能强大的同步工具,它解决了 CyclicBarrier 和 CountDownLatch 在某些复杂场景下的局限性。Phaser 提供了更灵活的线程同步机制,特别是在线程
Java
并发编程
Phaser
45
0
C++多线程中数据竞争导致的未定义行为排查
2026-04-20 18:14:04
C++多线程中数据竞争导致的未定义行为排查 数据竞争是多线程编程中最棘手的问题之一。当两个或多个线程同时访问同一块内存,且其中至少一个是写操作,且没有适当的同步机制时,就会发生数据竞争。在C++中,这属于未定义行为,意味着程序可能崩溃、产生错误结果,或者看似正常运行。本文将指导你如何编写复现案例,并
C++多线程
数据竞争
未定义行为
54
0
C++ std::atomic的load/store操作与memory_order选择
2026-04-19 11:27:16
C++ std::atomic的load/store操作与memoryorder选择 多线程编程中,数据竞争是导致程序崩溃或产生不可预测结果的元凶。C++11 引入的 std::atomic 是解决这一问题的核心工具,它能保证对变量的操作是不可分割的。然而,仅仅使用原子变量并不一定能保证正确的线程同
C++
多线程编程
原子操作
58
0
C++ 多线程同步std::mutex与std::lock_guard
2026-04-15 18:27:58
在多线程编程中,当多个线程同时访问共享数据时,会导致数据竞争,从而引发程序崩溃或产生错误结果。为了解决这一问题,C++ 标准库提供了 std::mutex(互斥锁)和 std::lockguard(锁管理器)。本文将详细介绍如何使用这两个工具来实现线程安全。 理解核心概念 std::mutex 是一
C++
多线程
线程同步
82
0
C++ 多线程:std::thread 与互斥锁
2026-04-07 02:47:14
C++ 多线程:std::thread 与互斥锁 阶段一:编译环境配置与核心对象声明 1. 确认编译器支持 C++11 或更高标准。打开终端并运行 g++ version。若版本号低于 4.8.1,安装 GCC 9.0 及以上版本或升级 MSVC/Clang,旧版工具链无法识别现代线程语法。 2.
C++多线程
互斥锁
线程同步
74
0
Python 多线程:threading 模块与锁机制
2026-04-07 00:12:26
Python 多线程:threading 模块与锁机制 1. 打开 代码编辑器或集成开发环境,新建 空白文件并 保存 为 threadinglock.py。 2. 引入 标准库模块。在文件首行 输入 import threading 与 import time。threading 提供线程控制接口,
多线程
锁机制
线程同步
85
0
C++ 线程库:std::thread 与互斥锁
2026-04-06 22:13:45
C++ 线程库:std::thread 与互斥锁 阶段一:创建并启动基础线程 1. 引入 标准线程库头文件 include <thread 与基础输入输出库 include <iostream。 2. 编写 独立运行函数。定义普通函数 void workertask,在函数体内 写入 业务逻辑,例如
C++多线程
并发编程
线程同步
55
0
Java 锁升级过程:偏向锁到轻量级锁到重量级锁
2026-04-03 05:09:24
Java 锁升级过程:偏向锁到轻量级锁到重量级锁 Java 虚拟机(JVM)为了提升多线程环境下对象同步的性能,设计了一套锁升级机制。这套机制从最轻量的“偏向锁”开始,在竞争加剧时逐步升级为“轻量级锁”,最终在高竞争场景下转为“重量级锁”。整个过程对开发者透明,但理解其原理有助于写出更高效的并发代码
Java并发
锁升级
偏向锁
103
0