精华内容
下载资源
问答
  • 临界区和临界资源是不同的,临界资源是必须互斥访问的资源,这种资源同时只能被一个进程所使用,但需要这种资源的进程不止一个,因此需要对使用临界资源的进程进行管理,这也就产生了临界区的概念。 2.每个进程的...

    临界资源和临界区的区别

    1.临界资源是一种系统资源,需要不同进程互斥访问,而临界区则是每个进程中访问临界资源的一段代码,是属于对应进程的,临界区前后需要设置进入区和退出区以进行检查和恢复。临界区和临界资源是不同的,临界资源是必须互斥访问的资源,这种资源同时只能被一个进程所使用,但需要这种资源的进程不止一个,因此需要对使用临界资源的进程进行管理,这也就产生了临界区的概念。

    2.每个进程的临界区代码可以不相同。临界区代码由于要访问临界资源,因此要在进入临界区之前(也就是执行临界区代码之前)进行检查,至于每个进程对临界资源进行怎样的操作,这和临界资源及互斥同步管理是无关的,比如,磁带机是明显的临界资源,有两个进程都要对其进行操作,A要写磁带前半部分,B要读磁带后半部分,这两个进程对磁带操作的部分就是这两个进程各自的临界区,不能同时执行,但内容是不相同的,不可认为临界资源相同,访问这些资源的代码也是相同的。

    展开全文
  • 临界区(CRITICAL_SECTION)互斥对象(MUTEX OBJECT)都可以进行线程同步,防止线程被中断。 ...如果你要协调两个共享某个资源的进程(比如共享内存),你就不能使用临界区,而应该使用互斥对象。 ...

    临界区(CRITICAL_SECTION)和互斥对象(MUTEX OBJECT)都可以进行线程同步,防止线程被中断。
    区别是临界区只能在同一个进程中使用。如果你要协调两个共享某个资源的进程(比如共享内存),你就不能使用临界区,而应该使用互斥对象。

    展开全文
  • 临界区和互斥器的区别

    千次阅读 2017-04-13 10:16:31
    临界区线程同步在Windows核心编程中被称为关键段线程同步,关键段是一小段代码,它在执行之前需要独占对一些资源的访问权。 缺点:能且只能用在一个进程中的多线程同步。可能陷入死锁,因为我们无法为进入关键段的...

    1、临界区critical section

    临界区线程同步在Windows核心编程中被称为关键段线程同步,关键段是一小段代码,它在执行之前需要独占对一些资源的访问权。
    缺点:能且只能用在一个进程中的多线程同步。可能陷入死锁,因为我们无法为进入关键段的线程设置最大等待时间。

     

    2、互斥器 mutex

    互斥器(Mutexes)的用途和临界区(critical section)的用途非常相似,如:一个时间内只能够有一个线程拥有mutex,就好像同一时间内只能够有一个线程进入同一个critical section一样。但是mutex通过牺牲速度提高灵活性,功能变得更加强大了。

    使用mutex时注意:

    在一个适当的程序中,线程绝对不应该在它即将结束前还拥有一个mutex,因为这意味着线程没有能够适当地清除其资源。有时候,因为某种理由,线程可能没有在结束前调用ReleaseMutex()。为了解决这个问题,mutex有一个非常重要的特性。这性质在各种同步机制中是独一无二的,如果线程拥有一个mutex而在结束前没有调用ReleaseMutex(),mutex不会被摧毁,取而代之的是,该mutex会被视为“未被拥有”以及“未被激发”,而下一个等待中的线程会被以WAIT_ABANDONED_0通知。无论线程是因为ExitThread()而结束,或是因当掉而结束,这种情况都存在。


    3、临界区和互斥器的差别                                                                                                                                                                                 

    (1)锁住一个未被拥有的mutex,比锁住一个未被拥有的critical section需要花费几乎100倍的时间。
    (2)mutex可以
    跨进程使用。critical section则只能在同一个进程中使用。

    (3)等待一个mutex时,你可以指定“结束等待”的时间长度,但对于critical section则不行。

    (4)造成以上差别的主要原因是:mutex是内核对象,critical section非内核对象

    (5)如果在进程内部使用的话,critical section更快,而且减少资源占用量。
    展开全文
  • 临界区和互斥量的区别

    千次阅读 2016-07-23 15:04:35
    2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 临界区(Critical Section)  保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时...
    1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 
    2、互斥量:为协调共同对一个共享资源的单独访问而设计的。
    临界区(Critical Section)
    
    
      保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。 
      临界区包含两个操作原语: 
      EnterCriticalSection() 进入临界区 
      LeaveCriticalSection() 离开临界区 
      EnterCriticalSection()语句执行后代码将进入临界区以后无论发生什么,必须确保与之匹配的LeaveCriticalSection()都能够被执行到。否则临界区保护的共享资源将永远不会被释放。虽然临界区同步速度很快,但却只能用来同步本进程内的线程,而不可用来同步多个进程中的线程。
    互斥量(Mutex) 
       
      互斥量跟临界区很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。当前占据资源的线程在任务处理完后应将拥有的互斥对象交出,以便其他线程在获得后得以访问资源。互斥量比临界区复杂。因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享。

    展开全文
  • 互斥量和临界区的区别通常有4种进程或线程同步互斥的控制方法,它们是: 临界区 互斥量 信号量 事件 ...今天我们主要对临界区和互斥量的异同点进行介绍,因为这两个实在太像了。临界区临界区用来保证在
  • 临界区(Critical Section)  保证在某一时刻只有一个线程能访问数据的简便办法。...临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。  临界区包含两个操作原语:EnterCri
  • win32MFC使用临界区区别

    千次阅读 2015-11-02 22:55:51
    临界区(Critical Section)是一段独占对某些共享资源访问的代码,在任意...临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。 临界区在使用时以CRITICAL_SECTION结构对象保护共享
  • 临界区与互斥量区别

    2019-09-24 01:44:54
    临界区和互斥锁的区别1、临界区只能用于对象在同一进程里线程间的互斥访问;互斥体可以用于对象进程间或线程间的互斥访问。2、临界区是非内核对象,只在用户态进行锁操作,速度快;互斥体是内核对象,在核心态进行锁...
  • 转载自临界区,互斥量,信号量,事件的区别 四种进程或线程同步互斥的控制方法 临界区: 通过对多线程的串行化来访问公共资源的一段代码,速度快,适合控制数据访问。 互斥量: 为协调共同对一个共享资源的单独访问...
  • 二元信号量类似,资源仅同时允许一个线程访问,但信号量不同是,信号量在整个系统可以被任意线程获取并释放,也就是说,同一个信号量可以被系统中一个线程获取之后由另一个线程释放。而互斥量则要求哪个线程...
  • 程序原子性指:整个程序中所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。 原子性操作:原子性在一个操作是不可中断,...用软件实现同步比较,软件同步是平等线程间的的一种同步...
  • 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。 临界区(Critical Section) ...
  • 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。  3、信号量:为控制一个具有有限数量用户资源而设计。  4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。  临界区(Critical ...
  • 临界区和互斥量

    2017-09-25 13:34:46
    有一次面试的被问到 临界区和互斥量的区别: 1、临界区只能用于对象在同一进程里线程间的互斥访问;互斥体可以用于对象进程间或线程间的互斥访问。 2、临界区是非内核对象,只在用户态进行锁操作,速度快;...
  • 不管是辅助线程还是用户接口线程,在存取共享资源时,都需要保护共享资源,以免引起冲突,造成错误。处理方法类似于Win32 API函数使用,但MFC为我们提供了几个同步对象C++类,即CSyncObject、CMutex、CSemaphore、...
  • 临界区的互斥

    2019-05-21 01:21:43
    访问共享内存是临界区和其他代码相区别的地方,当计算机中运行多个进程都有执行临界区代码时候,这个时候就会出现对共享内存竞争。如果多个临界区都是对共享内存进行读,则问题不大,不会出现竞争;当某个...
  • 1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的,互斥对象只有一个。 3、信号量:为控制一个具有有限数量用户...
  • 临界区

    千次阅读 2018-03-08 11:34:10
    为了提高系统的并发性引入了进程线程,线程的引入导致了资源的共享使用竞争,利用同步来解决这中问题,同步机制有锁同步概念 任何时刻只能有一个线程执行临界区代码对共享资源的访问出现的问题互斥,死锁,饥饿...
  • 1、临界区只能用于对象在同一...3、临界区和互斥体在Windows平台都下可用;Linux下只有互斥体可用。 1、临界区:通过对多线程串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对
  • 1.互斥量(互斥锁)信号量 多任务间同步的方式包括关中断,调度器上锁, 互斥量(mutex),信号量,消息队列几种, 其中互斥量信号量使用使用方式相近,连概念实现都... 互相斥量是管理临界资源的一种有效手段...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 180
精华内容 72
关键字:

临界区和临界资源的区别