操作系统笔记之临界区

发布时间:2026/10/5 2:08:39

操作系统笔记之临界区
操作系统笔记之临界区code review!文章目录操作系统笔记之临界区1.一句话描述临界区2.另外一句话描述临界区3.示例1.一句话描述临界区临界区Critical Section是指进程或线程中访问共享互斥资源的那段必须互斥执行的代码。2.另外一句话描述临界区临界区是指进程或线程中访问共享资源如共享变量、文件等的一段代码为避免竞态条件任意时刻只允许一个进程/线程进入执行。3.示例以下是一个使用 C 语言 POSIX 线程pthread互斥锁实现临界区保护的极简完整示例#includestdio.h#includepthread.hintcounter0;// 共享资源pthread_mutex_tlock;// 互斥锁void*increment(void*arg){pthread_mutex_lock(lock);// 进入临界区counter;// 访问共享资源pthread_mutex_unlock(lock);// 离开临界区returnNULL;}intmain(){pthread_tt1,t2;pthread_mutex_init(lock,NULL);pthread_create(t1,NULL,increment,NULL);pthread_create(t2,NULL,increment,NULL);pthread_join(t1,NULL);pthread_join(t2,NULL);printf(counter %d\n,counter);// 输出结果应为 2pthread_mutex_destroy(lock);return0;}说明counter是两个线程共享的资源。pthread_mutex_lock和pthread_mutex_unlock之间的代码就是临界区。互斥锁保证任意时刻只有一个线程能执行counter避免竞态条件确保最终结果正确为2。

相关新闻

Oracle性能优化:什么是AWR报告?如何生成与解读AWR报告?

Oracle性能优化:什么是AWR报告?如何生成与解读AWR报告?

2026/10/3 4:16:20

Oracle性能优化:什么是AWR报告?如何生成与解读AWR报告?引言在Oracle数据库性能优化领域,有一句话流传甚广:“没有AWR报告的性能分析,就像没有化验单的看病。” AWR(Automatic Workload Reposito…

Oracle性能优化:如何提高Oracle数据库的缓冲区缓存命中率?

Oracle性能优化:如何提高Oracle数据库的缓冲区缓存命中率?

2026/10/1 5:31:42

引言在Oracle数据库的性能调优中,Buffer Cache(缓冲区缓存)命中率是一个最经典、最常被提及的指标。虽然现代Oracle调优理念已经从“唯命中率论”转向了“等待事件驱动”,但Buffer Cache命中率仍然是一个不可忽视的健康指标——它…

Oracle性能优化:解释Oracle的自动内存管理(AMM)的机制

Oracle性能优化:解释Oracle的自动内存管理(AMM)的机制

2026/9/30 23:52:45

引言内存管理一直是Oracle数据库调优中最具挑战性的任务之一。在早期版本中,DBA需要手动分配SGA的各个组件(Buffer Cache、Shared Pool、Large Pool、Java Pool等)以及PGA的大小,这不仅要求对数据库负载有深入理解,还需…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/10/4 10:56:09

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/10/4 10:54:41

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/10/4 10:55:43

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/10/4 17:30:40

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/10/4 5:19:11

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/10/4 10:55:30

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…