1# mutex.h 2 3 4## Overview 5 6The **mutex.h** file declares the mutex interfaces in C. 7 8**File to include**: <ffrt/mutex.h> 9 10**Library**: libffrt.z.so 11 12**System capability**: SystemCapability.Resourceschedule.Ffrt.Core 13 14**Since**: 10 15 16**Related module**: [FFRT](_f_f_r_t.md) 17 18 19## Summary 20 21 22### Functions 23 24| Name| Description| 25| -------- | -------- | 26| FFRT_C_API int [ffrt_mutexattr_init](_f_f_r_t.md#ffrt_mutexattr_init) ([ffrt_mutexattr_t](ffrt__mutexattr__t.md) \*attr) | Initializes the mutex attribute. | 27| FFRT_C_API int [ffrt_mutexattr_settype](_f_f_r_t.md#ffrt_mutexattr_settype) ([ffrt_mutexattr_t](ffrt__mutexattr__t.md) \*attr, int type) | Sets the mutex attribute type. | 28| FFRT_C_API int [ffrt_mutexattr_gettype](_f_f_r_t.md#ffrt_mutexattr_gettype) ([ffrt_mutexattr_t](ffrt__mutexattr__t.md) \*attr, int \*type) | Obtains the mutex type. | 29| FFRT_C_API int [ffrt_mutexattr_destroy](_f_f_r_t.md#ffrt_mutexattr_destroy) ([ffrt_mutexattr_t](ffrt__mutexattr__t.md) \*attr) | Destroys the mutex attribute. This API needs to be called by users. | 30| FFRT_C_API int [ffrt_mutex_init](_f_f_r_t.md#ffrt_mutex_init) ([ffrt_mutex_t](ffrt__mutex__t.md) \*mutex, const [ffrt_mutexattr_t](ffrt__mutexattr__t.md) \*attr) | Initializes a mutex. | 31| FFRT_C_API int [ffrt_mutex_lock](_f_f_r_t.md#ffrt_mutex_lock) ([ffrt_mutex_t](ffrt__mutex__t.md) \*mutex) | Locks a mutex. | 32| FFRT_C_API int [ffrt_mutex_unlock](_f_f_r_t.md#ffrt_mutex_unlock) ([ffrt_mutex_t](ffrt__mutex__t.md) \*mutex) | Unlocks a mutex. | 33| FFRT_C_API int [ffrt_mutex_trylock](_f_f_r_t.md#ffrt_mutex_trylock) ([ffrt_mutex_t](ffrt__mutex__t.md) \*mutex) | Attempts to lock a mutex. | 34| FFRT_C_API int [ffrt_mutex_destroy](_f_f_r_t.md#ffrt_mutex_destroy) ([ffrt_mutex_t](ffrt__mutex__t.md) \*mutex) | Destroys a mutex. | 35