在发出条件变量的信号时,互斥体所有权会发生什么


  1. 线程T1锁定互斥锁M并等待条件C(释放M)。

  2. 线程T2锁定互斥锁M并发出条件C的信号。

文献中指出,一旦C发出信号,T1就会醒来并重新获取M

我对T2会发生什么感到怀疑,因为它在发出C信号之前获得了M

T2关于信号传导前获得的M会发生什么?

  1. T1是否准备就绪但被阻止,仅在T2释放M后执行,以便重新获取?

  2. T1是否准备好并执行,而T2被阻止,直到M释放,以便重新获取?

  3. 它们只是同时执行,T1M获得,T2M释放(或也获得?)

通过信号发送条件C唤醒线程T1,然后它必须通过锁定来重新获取互斥对象M。为此,T2必须首先释放M。

所以答案是,T1在信号上醒来,等待获取M,T2释放M,T1获取M,T1和T2同时执行。

相关内容

  • 没有找到相关文章

最新更新