临界区等待的线程是排队的吗

A,B,C三个线程都要访问g变量,通过临界区的方式互斥。
假设A先获取了临界区,在A释放临界区之前,B和C先后发来了访问g的请求。
问:
当A释放临界区之后,B和C按照怎样的顺序获得临界区?
是按照发送请求的先后顺序还是别的什么机制?

临界区的锁陷进去后所有人都在等待获取释放后的锁,从线程优先级设计上考虑,两线程之间并无区别,假设是时间片轮操作系统,根据系统时间片长度和银行家表与到锁释放时间可以推算出该谁执行,但你无法深入底层获取相关数据,所以可以粗俗地理解为随机。

一般来说是先请求的先获得,但是我没有看到文档上这么说,所以不能保证。而且请求这件事本身也可能是并发的。

按照语言特色,设置,操作系统而不同,一般可能会是依照到达临界区的时间而产生的队列(公平),但是也可以是非公平的,比如让优先级更高的,执行时间更快的进程优先执行