【发布时间】:2013-12-04 22:47:59
【问题描述】:
threads.h 仅支持使用mtx_init() 进行动态互斥体初始化。
显然互联网上没有任何关于threads.h的信息,除了:http://en.cppreference.com/w/c/thread。(我真的很想知道是否还有更多信息)
有人知道threads.h 中的struct mtx_t 是如何实现的吗?
我想像在 pthreads ( PTHREAD_MUTEX_INITIALIZER ) 中一样静态地初始化互斥锁,以避免每次在程序开始时调用初始化函数。
【问题讨论】:
-
threads.h 只是接口,各种实现可能以非常不同的方式实现互斥锁,只要它的行为像 C11 要求的那样。
-
顺便说一句,最新的 POSIX 标准取消了初始化器的限制,只能在静态上下文中使用。它现在适用于任何存储类,尤其是
auto变量。
标签: c multithreading pthreads c11