什么是多线程等待的`pthread_mutex_lock()`唤醒命令?

sha*_*net 8 c multithreading pthreads

假设我在调用时阻塞了多个线程pthread_mutex_lock().当互斥锁变得可用时,调用的第一个线程是否pthread_mutex_lock()获得锁定?也就是说,pthread_mutex_lock()按FIFO顺序调用?如果不是,那么它们的订单是什么?谢谢!

Lih*_*ihO 6

当互斥锁变得可用时,调用的第一个线程是否pthread_mutex_lock()获得锁定?

不会.其中一个等待的线程会获得一个锁定,但是哪个获取它是不确定的.

FIFO订单?

FIFO互斥体已经是一种模式.请参阅在pthreads中实现FIFO互斥锁