Linux是否有用于实现混合互斥功能的标准线程库?我的意思是,一个互斥体,起初,"表现得像一个自旋锁"并且"只有在经过一定时间(或重试或任何其他测量因素)后仍未获得锁定时,线程才真正进入睡眠状态,如Mecky在{{3}所述}
答案 0 :(得分:2)
glibc已经提供了这个。只需使用PTHREAD_MUTEX_ADAPTIVE_NP
类型或使用PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
作为互斥初始化程序。
请参阅http://sourceware.org/git/?p=glibc.git;a=blob;f=nptl/pthread_mutex_lock.c#l90