Mutual Exclusion

来自osdev
跳到导航 跳到搜索

互斥是在同步上下文中 (例如线程之间) 常用的词。 它用于确保只有一个实例可以访问一个资源。

它是什么

互斥是指多个实例可以尝试访问一个资源,但一次只能授予其中一个访问权限。 这里的 “实例” 一词指的是那些试图获得对资源访问的东西,例如线程。

互斥体 Mutex

互斥原则常用于 互斥 锁定机制。 互斥体也被称为 “二进制信号量”,因为它使用布尔值而不是整数来测试其锁定。 然后可以在多线程系统中使用此锁,以使代码的一部分可以安全地在多个线程上运行。

假设多个线程必须访问同一个文件。 然后,你可以使用互斥锁来确定文件是否已经在使用中。 如果它在使用中,互斥锁将被锁定,其余有需求的线程将不得不等待它变得可用。 一旦完成文件使用,另一个线程将解锁互斥锁。 当第一个线程注意到互斥锁已解锁时,它会立即锁定它然后才继续访问文件。 这样,两个线程都可以确定它们不会相互干扰或尝试在完全相同的时刻访问文件。

必须检查特定文件存在可使用。

另见

文章