关键段(临界区或临界段): 当多个进程访问同一代码段时, 该段称为关键段。关键段包含需要同步以保持数据变量一致性的共享变量或资源。
简单来说, 关键段是需要原子执行的一组指令/语句或代码区域, 例如访问资源(文件, 输入或输出端口, 全局数据等)。
在并发编程中, 如果一个线程试图同时更改共享数据的值, 而另一个线程试图读取该值(即数据在线程之间的竞争), 则结果是不可预测的。
对此类共享变量(共享内存, 共享文件, 共享端口等)的访问要同步。很少有编程语言具有对同步的内置支持。
在编写内核模式编程(设备驱动程序, 内核线程等)时, 了解竞争条件的重要性至关重要。因为程序员可以直接访问和修改内核数据结构。
文章图片
可以认为, 关键段的简单解决方案如下所示,
acquireLock();
Process Critical Section
releaseLock();
线程必须在执行关键段之前获得一个锁。该锁只能由一个线程获取。有多种方法可以在上述伪代码中实现锁定。让我们在以后的文章中讨论它们。
【如何理解同步中的关键段(详细指南)】如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- C语言中如何初始化静态变量(代码实例)
- C语言中静态变量的默认值是什么()
- Java中的默认构造函数的介绍和用法实例
- Java如何使用TreeMap(解析和用法示例)
- CSS如何使用注释(代码示例)
- 持久系统有限公司的面试经验分享
- ghost windows7 64位旗舰版激活密钥大全制作详细说明
- 深度技术Ghost win7设置系统装机版制作详细说明
- 本文教你深度技术Ghost win7 32位旗舰版无法使