北极熊不吃企鹅宝宝
搜索文章
首页
关于
站点
= 768 && isOpen) { isOpen = false; setTimeout(() => enableScroll(document.body), 200); }" >
enableScroll(document.body), 200);" x-transition:enter="transition ease duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease duration-300" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" style=" position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); z-index: 1001; overscroll-behavior: none; " >
enableScroll(document.body), 200)" >
首页
关于
站点
# 最优停止
(1)
# 算法
(1)
# 概率论
(1)
# 多线程
(2)
# C/C++
(3)
# AI infra
(3)
# AI
(3)
# 学习笔记
(3)
# NotebookLM
(1)
# gdb
(1)
# nginx
(1)
# 1panel
(1)
# callout
(1)
# obsidian
(1)
# git tag
(1)
# git
(1)
# docker
(1)
# openclaw
(1)
# Linux
(1)
# 数据结构
(2)
# 锁
(4)
# spec
(1)
# Halo
(0)
POSIX 信号量解析:计数语义及其与条件变量的本质区别
POSIX 信号量解析:计数语义及其与条件变量的本质区别 核心结论:信号量内部保存可用资源数量,sem_wait() 消费数量,sem_post() 归还数量;条件变量则不保存通知,只负责提醒线程重新检查外部状态。 问题背景 mutex 可以保
作者:CherryYang
发布时间:2026-08-12
分类:
计算机知识
标签:
#
多线程
,
#
锁
,
#
C/C++
pthread 条件变量解析:原子等待、虚假唤醒与 Completion 机制
pthread 条件变量解析:原子等待、虚假唤醒与 Completion 机制 核心结论:条件变量不保存业务条件,它负责让线程高效睡眠和被唤醒;真正的条件必须保存在 mutex 保护的共享状态中。 问题背景 假设主线程必须等待 worker 完成某项工作,最直观的写法是不断检查共享变量:
作者:CherryYang
发布时间:2026-08-12
分类:
计算机知识
标签:
#
C/C++
,
#
锁
,
#
多线程
锁与同步机制完全指南
锁与同步机制完全指南 一份从硬件基础到无锁数据结构、覆盖用户态与内核态的系统性参考。 阅读建议:第 1–3 部分是地基,务必读;第 4–8 部分按需查阅;第 10 部分(实践)和第 11 部分(延伸阅读)随时回看。 目录 并发的根本问题 硬件基础 原子操作与无锁基础 自旋锁家族 阻塞锁 读写分离 协
作者:CherryYang
发布时间:2026-07-14
分类:
计算机知识
标签:
#
锁
并发下锁的初始化问题
并发下锁的初始化:懒加载的鸡生蛋陷阱与 PTHREAD_MUTEX_INITIALIZER 范式 核心结论:在并发环境里"等到第一次用才去初始化一把锁"几乎总是错的——因为序列化这次初始化又需要另一把锁,于是陷入循环。正确做法是让锁在还没有并发的时刻(加载期 / 启动期)就准备好,或者用一个"本身不
作者:CherryYang
发布时间:2026-06-16
分类:
计算机知识
标签:
#
锁
共 4 篇文章
1
页