在多线程编程中,引入了对象互斥的概念,以确保共享数据操作的完整性。每个对象对应一个可称为互斥体的标记,该标记用于确保任何时候只有一个线程可以访问该对象。
[En]
In multithreaded programming, the concept of object mutex is introduced to ensure the integrity of shared data operations. Each object corresponds to a tag that can be called a mutex, which is used to ensure that only one thread can access the object at any one time.
互斥锁也可以叫线程锁,接下来说说互斥锁的的使用方法。
对互斥锁进行操作的函数,常用的有如下几个:
有很多函数可以操作线程锁,其中包括许多线程锁属性的操作函数,但一般情况下,对于不复杂的情况,只需要创建、获取、释放和删除锁。
[En]
There are many functions to operate on thread locks, including many operation functions for thread lock properties, but in general, for cases that are not complex, you only need to create, acquire, release, and delete locks.
创建互斥锁
所以下面简单看一下如何创建和使用互斥锁。
在使用互斥锁之前,需要先创建一个互斥锁的对象。 互斥锁的类型是 pthread_mutex_t ,所以定义一个变量就是创建了一个互斥锁。
这就定义了一个互斥锁。但是如果想使用这个互斥锁还是不行的,我们还需要对这个互斥锁进行初始化, 使用函数 pthread_mutex_init() 对互斥锁进行初始化操作。
除了使用 pthread_mutex_init() 初始化一个互斥锁,我们还可以使用下面的方式定义一个互斥锁:
在头文件 /usr/include/pthread.h 中,对 PTHREAD_MUTEX_INITIALIZER 的声明如下