c - 多线程等待的 `pthread_mutex_lock()` 唤醒顺序是什么?

标签 c multithreading pthreads

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

最佳答案

When the mutex becomes available, does the first thread that called pthread_mutex_lock() get the lock?

没有。其中一个等待线程获得了锁,但不确定是哪个线程获得了它。

FIFO order?

FIFO 互斥锁已经是一种模式了。参见 Implementing a FIFO mutex in pthreads

关于c - 多线程等待的 `pthread_mutex_lock()` 唤醒顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14947191/

相关文章:

c++ - 减少 OpenMP 并行迭代次数

java - java 引用的竞争条件

c - 在 C 的 POSIX 线程中使用时,recvfrom() 给出错误的文件描述符错误

计算 Pi 多线程 pthread

c++ - 在告诉您某个范围内的最小值的查询后,在每个索引处找到最小值

c - 为什么 MPLAB X 与 RTOS 不兼容

c - C 函数参数前的下划线

php - 在不退出循环的情况下,将curl_multi_exec限制为3-4个进程,而不是所有进程

c - 程序在 printf 上挂起或跳过 printf

c - pthread 条件和进程终止