C语言 多线程使用说明4 互斥对象实现线程同步-引入篇

互斥对象又叫做mutex,属于内核对象,能够确保线程对于单个资源的互斥访问权,互斥对象包含一个数量,一个线程ID,和一个计数器。其中ID用于标识系统中哪个线程当前占有互斥对象,计数器指明当前线程拥有过互斥对象的次数。

互斥对象保护了共享资源,确保共享资源在一个线程访问完毕之后才能被其他线程访问。线程对于共享资源进行操作前要先申请得到互斥对象的所有权,如果得不到,可以选择直接放弃返回也可以选择一直等待,知道其他线程释放了mutex所有权或者时间到;如果申请到了,就可以对共享资源进行访问,访问完毕后需要释放对于mutex的所有权,有时候,爱情也是这样。

要用到互斥对象的话,你先得创建互斥对象。创建互斥对象的线程可以选择拥有该对象的所有权,也可以选择不拥有。如果是后者的话,则该互斥对象处于有信号状态,可以被其他线程申请所有权。一旦某线程申请得到了所有权,那么mutex又没有了信号,其他线程还想要申请所有权就需要等待,当它释放了互斥对象的所有权,那么又会有信号。有时候,爱情也是这样。

对于互斥对象的操作,主要就是建立、申请和释放,本文我们先来介绍一下互斥对象的创建。

先这样8,我晚点来填这个坑。

猜你喜欢

转载自blog.csdn.net/qq_42229034/article/details/81870158