Multithreading 如果posix互斥锁被解锁,而多个线程在此互斥锁上被阻止,会发生什么情况?
当thread1解锁mutex1时,哪个线程将被唤醒?它有标准规格吗 当thread1解锁mutex1时,将唤醒哪个线程 当前在互斥锁上被阻止的其他线程之一。还不清楚是哪一个 它有标准规格吗Multithreading 如果posix互斥锁被解锁,而多个线程在此互斥锁上被阻止,会发生什么情况?,multithreading,posix,Multithreading,Posix,当thread1解锁mutex1时,哪个线程将被唤醒?它有标准规格吗 当thread1解锁mutex1时,将唤醒哪个线程 当前在互斥锁上被阻止的其他线程之一。还不清楚是哪一个 它有标准规格吗 不。不同的系统可能以不同的方式实施。(一些可能使用简单的fifo顺序来唤醒线程,另一些可能使用试探法来决定要唤醒哪个线程)。当您使用pthread\u mutex\u unlock解锁posix互斥锁时,如果多个线程正在等待互斥锁,则只有一个线程会被唤醒 各国: 如果互斥对象引用的互斥对象上有线程被阻止 调
不。不同的系统可能以不同的方式实施。(一些可能使用简单的fifo顺序来唤醒线程,另一些可能使用试探法来决定要唤醒哪个线程)。当您使用
pthread\u mutex\u unlock
解锁posix互斥锁时,如果多个线程正在等待互斥锁,则只有一个线程会被唤醒
各国:
如果互斥对象引用的互斥对象上有线程被阻止
调用pthread_mutex_unlock()时,导致互斥变为
可用时,调度策略应确定应使用哪个线程
获取互斥
用哪种语言?没有通用的响应。您希望对POSIX互斥体或C++11中本机定义的互斥体或两者都有答案吗?@Étienne POSIX互斥体,谢谢!
thread 1:
lock mutex1
long time operation
unlock mutex1
thread2:
lock mutex1
...
thread3:
lock mutex1
...
thread4:
lock mutex1
...
threadn:
lock mutex1
...