并发并竞争
发布时间
阅读量:
阅读量
一、什么是并发与竞争?
并发:多个“用户”同时对同一块共享内存进行访问。
竞争:当多个“用户”同时访问并修改同一段共享内存时,可能会引发数据混乱,甚至导致程序崩溃,这种现象被称为竞争。
二、造成Linux系统产生并发的原因是什么呢?
(1)多线程环境下多个任务同时进行访问
(2)采用抢占机制实现的并发访问方式
(3)通过中断程序实现的并发访问模式
(4)多核处理器中各核心之间的并发访问
三、什么是同步?
显然,我们并不期望出现此类状况,因此需要采取措施对临界资源进行防护,确保在任意时刻仅允许单一进程或线程对其进行访问,甚至按照特定顺序执行,这一机制即为同步。
实现同步的方式多种多样,例如:自旋锁、信号量、互斥量 等等。
四、共享资源(临界资源)?
在多任务处理机制中,存在多个执行单元,这些单元通常具备共享存储区域(例如全局变量、共享内存等)。
因此,需要对共享资源实施保护措施。其中,线程内部的局部变量无需防护,而应重点保障多个线程共同访问的共享数据。例如:全局变量以及设备结构体中的成员变量。
避免并发与竞争的操作:
1.原子操作定义与特性
原子这一概念最早出现在化学领域中,指的是在化学反应过程中无法进一步分割的最基本粒子。同样地,在计算机科学的内核层面
全部评论 (0)
还没有任何评论哟~
