mtx_init函数
概要:
#include <threads.h> int mtx_init(mtx_t *mtx, int type);
描述:
该函数创建一个互斥对象,该互斥对象由参数type指定互斥类型。
ISO/IEC 9899:2018标准支持的互斥类型具体如下:
枚举常量 | 描述 |
mtx_plain | 简单非递归互斥。 |
mtx_timed | 支持超时的非递归互斥。 |
mtx_plain | mtx_recursive | 简单递归互斥。 |
mtx_timed | mtx_recursive | 支持超时的递归互斥。 |
实现还可能支持mtx_try、mtx_try | mtx_recursive类型互斥。
如果互斥创建成功,函数将参数mtx指向的互斥设置为唯一标识新创建互斥的值。
参数:
mtx_t *mtx
指向新创建互斥的标识符的指针。
int type
表示互斥类型的整数。
返回值:
如果互斥创建成功,函数返回thrd_success;如果互斥创建失败,函数返回thrd_error。
范例:
|
|
结果:
假设输入分别是123、456和789, 将输出:
Available tickets: 10000
Purchase tickets.
123
Remaining tickets: 9877
Available tickets: 9877
Purchase tickets.
456
Remaining tickets: 9421
Available tickets: 9421
Purchase tickets.
789
Remaining tickets: 8632
Available tickets: 8632
Sold tickets: 1368
注:使用Pelles C编译。
相关内容:
mtx_lock | 加锁互斥的函数。 |
mtx_timedlock | 支持超时加锁互斥的函数。 |
mtx_destroy | 销毁互斥的函数。 |
mtx_trylock | 尝试加锁互斥的函数。 |
mtx_unlock | 解锁互斥的函数。 |